2012-07-23 57 views
1

我有SQL Server 2008 R2。我想獲取列名所在的列名和表名。而且我想顯示指定的類型。例如: 假設我想查看所有tinyint列。結果應該如下:查找數據庫中指定類型的所有列

ColumnName|TableName 
orderID |Orders 
clientID |Orders 
refID  |discounts 

是否可以寫查詢來做到這一點?

回答

3

你會使用system表得到這樣的數據:

SELECT OBJECT_NAME(c.OBJECT_ID) TableName 
    , c.name ColumnName 
FROM sys.columns c 
JOIN sys.types t 
    ON c.user_type_id=t.user_type_id 
WHERE t.name = 'tinyint' 
ORDER BY c.OBJECT_ID; 

在此的更多細節,可以發現:

SQL SERVER – 2005 – List All The Column With Specific Data Types

+0

謝謝您。該查詢甚至輸出用戶定義的函數返回指定的類型。 – seeker 2012-07-23 17:09:13

1

試試這個..

select ao.name objectname,ac.name columnname,t.name usertypename from sys.all_columns ac inner join sys.types t 
on ac.user_type_id = t.user_type_id 
inner join sys.all_objects ao 
on ac.object_id = ao.object_id 
and ao.type = 'U' 
where t.name ='tinyint' 
相關問題