Wybór z INFORMATION_SCHEMA.COLUMNS to dobry sposób na określenie, które kolumny należy przekonwertować,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Nie można go jednak użyć do bezpośredniej zmiany typu danych kolumny. ZMIEŃ TABELĘ służy do modyfikowania typów danych kolumn:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
W tym czasie unikaj używania NVARCHAR(MAX)
chyba że jest to absolutnie konieczne. Upewnij się, że rozmiar Twoich danych jest dostosowany do atrybutu. Jeśli Twój CHAR
kolumny mają już prawidłowy rozmiar, użyj następującego skryptu, aby generować ALTER TABLE
oświadczenia:
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';
Pamiętaj, że generuje to tylko instrukcje ALTER TABLE, musisz skopiować wyniki i wykonać w nowej karcie, aby zmienić typy danych.