sql >> Base de Datos >  >> RDS >> Sqlserver

Convertir el tipo de datos Char a Nvarchar

Seleccionar de INFORMACION_ESQUEMA.COLUMNAS es una buena forma de determinar qué columnas se deben convertir,

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';

Pero no se puede usar para cambiar directamente el tipo de datos de una columna. ALTERAR TABLA se utiliza para modificar tipos de datos de columna:

ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);

Mientras lo hace, evite usar NVARCHAR(MAX) a menos que sea absolutamente necesario. Asegúrese de que sus tipos de datos tengan un tamaño específico para el atributo. Si su CHAR las columnas ya tienen el tamaño correcto, use la siguiente secuencia de comandos para generar la ALTER TABLE declaraciones:

SELECT  'ALTER TABLE ' +
        QUOTENAME(TABLE_SCHEMA) + '.' +
        QUOTENAME(TABLE_NAME) +
        ' ALTER COLUMN ' +
        QUOTENAME(COLUMN_NAME) +
        ' NVARCHAR(' +
        CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(4)) + ');'
FROM    INFORMATION_SCHEMA.COLUMNS
WHERE   DATA_TYPE = 'char';

Tenga en cuenta que esto solo genera declaraciones ALTER TABLE, deberá copiar los resultados y ejecutar en una nueva pestaña para cambiar los tipos de datos.