INFORMATION_SCHEMA.COLUMNS から選択することは、どの列を変換する必要があるかを判断する良い方法です。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
ただし、列のデータ型を直接変更するために使用することはできません。 ALTER TABLE 列のデータ型を変更するために使用されます:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
その間、NVARCHAR(MAX)
の使用は避けてください どうしても必要な場合を除きます。データ型が属性に合わせてサイズ設定されていることを確認してください。 CHAR
の場合 列は既に適切なサイズになっています。次のスクリプトを使用して生成します ALTER TABLE
ステートメント:
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';
これは ALTER TABLE ステートメントのみを生成することに注意してください。データ型を変更するには、結果をコピーして新しいタブで実行する必要があります。