我正在做一个维护项目,我处理的某些数据库有150多个表,所以我正在寻找一种快速的方法。 >您有什么建议?
#1 楼
您可以使用以下查询来列出数据库中表中的所有列或搜索列。USE AdventureWorks
GO
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%EmployeeID%'
ORDER BY schema_name, table_name;
可以利用information_schema视图列出SQL Server 2005中的所有对象或2008数据库。
SELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns
http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from -all-tables-of-database /
#2 楼
还有SQL Search-与SQL Server Management Studio集成的免费工具。评论
SQL搜索是一个很好的工具,但是请记住,结果窗口被任意限制为250个结果。我上一次使用此工具时,Red Gate没有办法解除此限制。话虽这么说,它仍然是一个非常有用的工具,我会推荐给任何SQL Server DBA或开发人员。价格也合适!
–马特M
2011年1月11日14:06
#3 楼
一个较晚,但由于两个工具都是免费的,因此希望有用。ApexSQL搜索–该工具的优点是它还可以搜索数据,显示对象之间的依赖关系以及其他有用的东西。
SSMS工具包–除SQL 2012外,所有版本均免费。很多很棒的选项不仅仅与搜索相关,例如摘要,各种自定义等等。 br />
#4 楼
这是所有旧SQL DBA都使用的版本。EXEC sp_help 'your table name';
如果仅使用单行,则甚至无需键入EXEC。只要做
sp_help 'your table name'
评论
在SO中问类似的问题好文章。非常感谢。我还使用了TM Field Finder,它在SQL Schema和数据搜索方面确实非常强大。
相关:使用SQL探索数据库架构