Chọn từ INFORMATION_SCHEMA.COLUMNS là một cách tốt để xác định cột nào cần được chuyển đổi,
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE = 'CHAR';
Nhưng nó không thể được sử dụng để thay đổi trực tiếp kiểu dữ liệu của cột. BẢNG THAY THẾ được sử dụng để sửa đổi các kiểu dữ liệu cột:
ALTER TABLE [dbo].[TableName] ALTER COLUMN [ColumnName] NVARCHAR(50);
Khi bạn đang ở đó, hãy tránh sử dụng NVARCHAR(MAX)
trừ khi nó thực sự cần thiết. Đảm bảo rằng các loại dữ liệu của bạn có kích thước cụ thể cho thuộc tính. Nếu CHAR
của bạn các cột đã được định kích thước chính xác, hãy sử dụng tập lệnh sau để tạo ALTER TABLE
tuyên bố:
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';
Hãy nhớ rằng điều này chỉ tạo ra các câu lệnh ALTER TABLE, bạn sẽ cần sao chép kết quả và thực thi trong một tab mới để thay đổi kiểu dữ liệu.