Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuyển đổi kiểu dữ liệu Char thành Nvarchar

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số lượng hàng không khớp trong SQL Server trong truy vấn CHỌN và CẬP NHẬT có cùng điều kiện

  2. Thay đổi bảng &Thêm khóa UNIQUE dẫn đến lỗi

  3. Ghi ngăn xếp cuộc gọi SQL Server khi báo cáo lỗi

  4. Tìm dữ liệu cho mỗi năm tài chính tiếp theo trong truy vấn mdx

  5. Đọc dữ liệu từ SqlDataReader