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