Selecteren uit INFORMATION_SCHEMA.COLUMNS is een goede manier om te bepalen welke kolommen moeten worden geconverteerd,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Maar het kan niet worden gebruikt om het gegevenstype van een kolom rechtstreeks te wijzigen. WIJZIG TABEL wordt gebruikt om kolomgegevenstypen te wijzigen:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
Terwijl je toch bezig bent, vermijd het gebruik van NVARCHAR(MAX)
tenzij het absoluut noodzakelijk is. Zorg ervoor dat uw gegevenstypen een specifiek formaat hebben voor het kenmerk. Als uw CHAR
kolommen al de juiste grootte hebben, gebruik het volgende script om genereren de ALTER TABLE
uitspraken:
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';
Houd er rekening mee dat dit alleen de ALTER TABLE-instructies genereert, u moet de resultaten kopiëren en uitvoeren op een nieuw tabblad om de gegevenstypen te wijzigen.