Memilih dari INFORMATION_SCHEMA.COLUMNS adalah cara yang baik untuk menentukan kolom apa yang perlu dikonversi,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Tapi itu tidak bisa digunakan untuk mengubah tipe data kolom secara langsung. ALTER TABLE digunakan untuk mengubah tipe data kolom:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
Saat Anda melakukannya, hindari menggunakan NVARCHAR(MAX)
kecuali benar-benar diperlukan. Pastikan tipe data Anda berukuran khusus untuk atribut tersebut. Jika CHAR
. Anda kolom sudah berukuran dengan benar, gunakan skrip berikut untuk menghasilkan ALTER TABLE
pernyataan:
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';
Perlu diingat bahwa ini hanya menghasilkan pernyataan ALTER TABLE, Anda harus menyalin hasilnya dan menjalankannya di tab baru untuk mengubah tipe data.