我想在数据库中存在的列名称中搜索一个字符串。

我正在做一个维护项目,我处理的某些数据库有150多个表,所以我正在寻找一种快速的方法。 >您有什么建议?

评论

在SO中问类似的问题

好文章。非常感谢。我还使用了TM Field Finder,它在SQL Schema和数据搜索方面确实非常强大。

相关:使用SQL探索数据库架构

#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'