2012-07-23 79 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' 
相关问题