在SQL Server数据库的所有表中查找某个types的所有列

如何在SQL Server数据库的所有表中find某个types的所有列(例如NTEXT )?

我正在查找一个SQL查询。

您可以使用以下查询返回字段

 SELECT table_name [Table Name], column_name [Column Name] FROM information_schema.columns where data_type = 'NTEXT' 

你将需要INFORMATION_SCHEMA。 尝试像这样:

 SELECT c.* from INFORMATION_SCHEMA.columns c INNER JOIN INFORMATION_SCHEMA.tables t ON t.table_name = c.table_name WHERE c.data_type = 'int' AND t.table_type = 'base table' 

你也可以试试

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

您可以使用系统视图INFORMATION_SCHEMA.COLUMNSdata_type列有你在找什么。

我确实使用下面的语句来查找所有可能包含二进制数据/文件的表。

 SELECT table_name FROM INFORMATION_SCHEMA.TABLES T WHERE T.TABLE_CATALOG = 'MyDatabase' AND EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_CATALOG = T.TABLE_CATALOG AND C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME AND ( C.DATA_TYPE = 'binary' OR C.DATA_TYPE = 'varbinary' OR C.DATA_TYPE = 'text' OR C.DATA_TYPE = 'ntext' OR C.DATA_TYPE = 'image' ) )