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