Come posso trovare tutte le colonne di un determinato tipo (ad esempio NTEXT
) in tutte le tabelle in un database SQL Server?Trova tutte le colonne di un determinato tipo in tutte le tabelle in un database SQL Server
Sto cercando una query SQL.
Come posso trovare tutte le colonne di un determinato tipo (ad esempio NTEXT
) in tutte le tabelle in un database SQL Server?Trova tutte le colonne di un determinato tipo in tutte le tabelle in un database SQL Server
Sto cercando una query SQL.
È possibile utilizzare seguente query per restituire i campi
SELECT table_name [Table Name], column_name [Column Name]
FROM information_schema.columns where data_type = 'NTEXT'
È possibile utilizzare la vista di sistema INFORMATION_SCHEMA.COLUMNS
. La colonna data_type
ha quello che stai cercando.
Avrai bisogno di INFORMATION_SCHEMA. Provare qualcosa di simile:
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'
ho usato la seguente dichiarazione per trovare tutte le tabelle che potrebbe contenere dati binari/file.
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')
)
Inoltre si può provare
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
Sono inoltre previsti vista – Daniel