Como posso encontrar todas as colunas de um determinado tipo (por exemplo NTEXT) em todas as tabelas em um banco de dados SQL Server?
Estou procurando uma consulta SQL.
Como posso encontrar todas as colunas de um determinado tipo (por exemplo NTEXT) em todas as tabelas em um banco de dados SQL Server?
Estou procurando uma consulta SQL.
Respostas:
Você pode usar a seguinte consulta para retornar campos
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). Você pode usar LEN(..)etc. com nvarchar e não ntext.
INNER JOIN INFORMATION_SCHEMA.TABLES t ON c.TABLE_NAME = t.TABLE_NAME AND t.TABLE_TYPE = 'BASE TABLE'
Eu usei a seguinte instrução para encontrar todas as tabelas que poderiam conter dados / arquivos binários.
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' )
)