At vælge fra INFORMATION_SCHEMA.COLUMNS er en god måde at bestemme, hvilke kolonner der skal konverteres,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Men det kan ikke bruges til direkte at ændre en kolonnes datatype. ÆNDRINGSTABEL bruges til at ændre kolonnedatatyper:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
Mens du er i gang, skal du undgå at bruge NVARCHAR(MAX)
medmindre det er absolut nødvendigt. Sørg for, at dine datatyper er dimensioneret specifikt til attributten. Hvis din CHAR
kolonner allerede har den rigtige størrelse, brug følgende script til at generere ALTER TABLE
udsagn:
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';
Husk, at dette kun genererer ALTER TABLE-sætningerne. Du skal kopiere resultaterne og udføre i en ny fane for at ændre datatyperne.