SELECT t.name AS TableName, c.name AS ColumnName FROM sys.tables t INNERJOIN sys.columns c ON t.object_id = c.object_id WHERE c.name LIKE'%YourColumnName%' ORDERBY TableName, ColumnName;
使用說明
將 YourColumnName 替換成你要搜尋的欄位名稱
% 符號代表萬用字元,可以做模糊搜尋
查詢結果會顯示所有符合的資料表名稱及欄位名稱
進階搜尋技巧
如果要搜尋更詳細的資訊,可以使用以下進階查詢:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
SELECT SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, c.name AS ColumnName, typ.name AS DataType, c.max_length AS MaxLength, c.precision ASPrecision, c.scale AS Scale, c.is_nullable AS IsNullable FROM sys.tables t INNERJOIN sys.columns c ON t.object_id = c.object_id INNERJOIN sys.types typ ON c.user_type_id = typ.user_type_id WHERE c.name LIKE'%YourColumnName%' ORDERBY SchemaName, TableName, ColumnName;
DECLARE db_cursor CURSORFOR SELECT name FROM sys.databases WHERE database_id >4-- 排除系統資料庫 AND state_desc ='ONLINE'
OPEN db_cursor FETCH NEXT FROM db_cursor INTO@DatabaseName
WHILE @@FETCH_STATUS=0 BEGIN SET@SQL=' USE ['+@DatabaseName+'] INSERT INTO #Results SELECT '''+@DatabaseName+''' AS DatabaseName, SCHEMA_NAME(t.schema_id) AS SchemaName, t.name AS TableName, c.name AS ColumnName FROM sys.tables t INNER JOIN sys.columns c ON t.object_id = c.object_id WHERE c.name LIKE ''%YourColumnName%'''