我想在数据库中存在的列名称中搜索一个字符串。
我正在做一个维护项目,我处理的某些数据库有150多个表,因此我正在寻找一种快速的方法。
你有什么建议吗?
在SO中
—
CoderHawk 2011年
我想在数据库中存在的列名称中搜索一个字符串。
我正在做一个维护项目,我处理的某些数据库有150多个表,因此我正在寻找一种快速的方法。
你有什么建议吗?
Answers:
您可以使用以下查询来列出数据库中所有表的所有列或搜索列。
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/
还有SQL Search-与SQL Server Management Studio集成的免费工具。
一个较晚,但由于两个工具都是免费的,因此很有用。
ApexSQL Search –该工具的优点是它还可以搜索数据,显示对象之间的依赖关系以及其他有用的东西。
SSMS工具包 –适用于除SQL 2012以外的所有版本。许多很棒的选项不仅与搜索相关,例如摘要,各种自定义设置等。