¿Cómo puedo encontrar todas las columnas de un determinado tipo (por ejemplo NTEXT) en todas las tablas de una base de datos de SQL Server?
Estoy buscando una consulta SQL.
¿Cómo puedo encontrar todas las columnas de un determinado tipo (por ejemplo NTEXT) en todas las tablas de una base de datos de SQL Server?
Estoy buscando una consulta SQL.
Respuestas:
Puede utilizar la siguiente consulta para devolver 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). Puede usar LEN(..)etc. con nvarchar y no ntext.
INNER JOIN INFORMATION_SCHEMA.TABLES t ON c.TABLE_NAME = t.TABLE_NAME AND t.TABLE_TYPE = 'BASE TABLE'
Usé la siguiente declaración para encontrar todas las tablas que posiblemente podrían contener datos / archivos binarios.
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' )
)