在数据库中查找指定类型的所有列

时间:2012-07-23 17:00:55

标签: sql-server database

我有SQL server 2008 R2。我想获取此列所在的列名和表名。而我想显示指定的类型。例如: 假设我想看到所有tinyint列。结果应如下:

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

是否可以编写查询来执行此操作?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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'