Att välja från INFORMATION_SCHEMA.COLUMNS är ett bra sätt att avgöra vilka kolumner som behöver konverteras,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Men det kan inte användas för att direkt ändra en kolumns datatyp. ÄNDRA TABELL används för att ändra kolumndatatyper:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
Medan du håller på bör du undvika att använda NVARCHAR(MAX)
om det inte är absolut nödvändigt. Se till att dina datatyper är anpassade till attributet. Om din CHAR
kolumner redan har rätt storlek, använd följande skript för att generera ALTER TABLE
uttalanden:
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';
Tänk på att detta bara genererar ALTER TABLE-satserna, du måste kopiera resultaten och köra på en ny flik för att ändra datatyperna.