Enunciado
Cambiar la intercalación de todas las columnas de todas las tablas de una base de datos.Solución
Ejecutas el siguiente T-sql en una consulta SSMS.DECLARE @collation NVARCHAR(64)
SET @collation = 'Modern_Spanish_CI_AI'
SELECT
'ALTER TABLE [' + INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA + '].[' + INFORMATION_SCHEMA.COLUMNS.TABLE_NAME + '] '
+ 'ALTER COLUMN [' + COLUMN_NAME + '] '
+ DATA_TYPE + '(' + CASE CHARACTER_MAXIMUM_LENGTH
WHEN -1 THEN 'MAX'
ELSE CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) END + ') '
+ 'COLLATE ' + @collation + ' '
+ CASE WHEN IS_NULLABLE = 'NO' THEN 'NOT NULL' ELSE 'NULL' END
FROM INFORMATION_SCHEMA.columns
INNER JOIN INFORMATION_SCHEMA.TABLES
ON INFORMATION_SCHEMA.TABLES.TABLE_NAME=INFORMATION_SCHEMA.COLUMNS.TABLE_NAME
WHERE COLLATION_NAME IS NOT NULL
AND COLLATION_NAME <> @collation
AND INFORMATION_SCHEMA.TABLES.TABLE_TYPE ='BASE TABLE'
El resultado lo copias y lo pegas en otra ventana de consulta.
Revisa ese código generado y si está correcto ejecutas.
No hay comentarios:
Publicar un comentario