Výběr z INFORMATION_SCHEMA.COLUMNS je dobrý způsob, jak určit, které sloupce je třeba převést,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Nelze jej však použít k přímé změně datového typu sloupce. ALTER TABLE se používá k úpravě datových typů sloupců:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
Když už jste u toho, nepoužívejte NVARCHAR(MAX)
pokud to není nezbytně nutné. Ujistěte se, že vaše datové typy mají velikost specificky pro daný atribut. Pokud váš CHAR
sloupce již mají správnou velikost, použijte k generování následující skript ALTER TABLE
prohlášení:
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';
Mějte na paměti, že tím se vygenerují pouze příkazy ALTER TABLE, budete muset zkopírovat výsledky a spustit je na nové kartě, abyste mohli změnit datové typy.