Come posso trovare tutte le colonne di un certo tipo (ad esempio NTEXT) in tutte le tabelle di un database SQL Server?
Sto cercando una query SQL.
Come posso trovare tutte le colonne di un certo tipo (ad esempio NTEXT) in tutte le tabelle di un database SQL Server?
Sto cercando una query SQL.
Risposte:
È possibile utilizzare la seguente query per restituire i campi
SELECT table_name [Table Name], column_name [Column Name]
FROM information_schema.columns where data_type = 'NTEXT'
alter table [tablename] alter column [columnname] nvarchar(max). Puoi usare LEN(..)ecc. Con nvarchar e non con ntext.
INNER JOIN INFORMATION_SCHEMA.TABLES t ON c.TABLE_NAME = t.TABLE_NAME AND t.TABLE_TYPE = 'BASE TABLE'
Ho usato la seguente istruzione per trovare tutte le tabelle che potrebbero contenere dati / file binari.
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' )
)