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

Cách thay đổi kiểu dữ liệu của cột trong SQL Server (T-SQL)

Khi bạn tạo một bảng cơ sở dữ liệu, bạn chỉ định tất cả các cột cùng với kiểu dữ liệu của chúng. Sau khi được tạo, thông thường không có bất kỳ ý định thay đổi các loại dữ liệu này. Rốt cuộc, bất cứ ai thiết kế lược đồ sẽ phải suy nghĩ rất nhiều về loại dữ liệu mà mỗi và mỗi cột nên chấp nhận.

Tuy nhiên, chúng ta đều biết rằng mọi thứ có thể thay đổi. Mặc dù chúng tôi đã cố gắng hết sức để lường trước mọi tình huống có thể xảy ra với cơ sở dữ liệu của chúng tôi, nhưng đôi khi điều đó vẫn chưa đủ.

Vì vậy, chúng ta phải làm gì nếu chúng ta cần sử dụng Transact-SQL để thay đổi kiểu dữ liệu của một cột trong SQL Server?

Chúng tôi sử dụng ALTER TABLE tuyên bố để thay đổi nó tất nhiên.

Ví dụ

Dưới đây là một ví dụ về việc sử dụng T-SQL ALTER TABLE câu lệnh để thay đổi kiểu dữ liệu của một cột:

ALTER TABLE Tasks
    ALTER COLUMN TaskCode char(6);
GO

Điều này làm thay đổi bảng có tên Tasks , bằng cách thay đổi TaskCode của nó cột thành kiểu dữ liệu char(6) . Lưu ý rằng không cần chỉ định loại dữ liệu được sử dụng hiện tại - bạn chỉ cần chỉ định kiểu dữ liệu mới và thực hiện với nó. SQL Server sẽ thực hiện phần còn lại.

Kiểm tra kết quả

Bạn có thể kiểm tra kết quả bằng cách truy vấn INFORMATION_SCHEMA.COLUMNS :

USE Solutions;
SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
    CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Tasks'
AND COLUMN_NAME = 'TaskCode';

Kết quả:

COLUMN_NAME  DATA_TYPE  MAX_LENGTH  OCTET_LENGTH
-----------  ---------  ----------  ------------
TaskCode     char       6           6           


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi một cột:null thành không null

  2. Thứ tự có điều kiện T-SQL theo

  3. Bảng tổng hợp động trong SQL Server

  4. Cách sys.dm_exec_describe_first_result_set hoạt động trong SQL Server

  5. Tự động hóa công việc sao lưu và bảo trì bằng cách sử dụng kế hoạch bảo trì trong SQL Server