Sql server 在数据库中查找指定类型的所有列
我有SQLServer2008R2。我想得到这个列所在的列名和表名。以及我要为指定类型显示的。例如: 假设我想看到所有的tinyint列。结果应如下所示:Sql server 在数据库中查找指定类型的所有列,sql-server,database,Sql Server,Database,我有SQLServer2008R2。我想得到这个列所在的列名和表名。以及我要为指定类型显示的。例如: 假设我想看到所有的tinyint列。结果应如下所示: ColumnName|TableName orderID |Orders clientID |Orders refID |discounts 是否可以编写查询来实现这一点 您可以使用这些表来获取这些数据: SELECT OBJECT_NAME(c.OBJECT_ID) TableName , c.name Column
ColumnName|TableName
orderID |Orders
clientID |Orders
refID |discounts
是否可以编写查询来实现这一点 您可以使用这些表来获取这些数据:
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;
有关这方面的其他详细信息,请参见:
您可以使用以下表格获取此数据:
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;
有关这方面的其他详细信息,请参见:
试试这个
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'
试试这个
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'
非常感谢。此查询甚至输出返回指定类型的用户定义函数。谢谢。此查询甚至输出返回指定类型的用户定义函数。