ALTER TABLE DROP COLUMN trong SQL Server
Trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh ALTER TABLE DROP COLUMN
trong SQL Server để xóa một hoặc nhiều cột khỏi bảng hiện có.
Giới thiệu về lệnh ALTER TABLE DROP COLUMN trong SQL Server
Đôi khi, bạn cần xóa một hoặc nhiều cột không sử dụng hoặc đã lỗi thời khỏi bảng. Để thực hiện việc này, bạn sử dụng câu lệnh ALTER TABLE DROP COLUMN
như sau:
ALTER TABLE table_name
DROP COLUMN column_name;
Trong cú pháp này:
- Đầu tiên, chỉ định tên của bảng mà bạn muốn xóa cột.
- Tiếp theo, chỉ định tên của cột mà bạn muốn xóa.
Nếu cột mà bạn muốn xóa có một ràng buộc CHECK, bạn phải xóa ràng buộc trước khi xóa cột. Ngoài ra, SQL Server không cho phép bạn xóa một cột có ràng buộc PRIMARY KEY
hoặc FOREIGN KEY
.
Nếu bạn muốn xóa nhiều cột cùng một lúc, bạn sử dụng cú pháp sau:
ALTER TABLE table_name
DROP COLUMN column_name_1, column_name_2,...;
Trong cú pháp này, bạn chỉ định các cột mà bạn muốn xóa dưới dạng danh sách các cột được phân tách bằng dấu phẩy trong mệnh đề DROP COLUMN
.
Ví dụ về lệnh ALTER TABLE DROP COLUMN trong SQL Server
Hãy tạo một bảng mới có tên sales.price_lists
để minh họa.
CREATE TABLE sales.price_lists(
product_id int,
valid_from DATE,
price DEC(10,2) NOT NULL CONSTRAINT ck_positive_price CHECK(price >= 0),
discount DEC(10,2) NOT NULL,
surcharge DEC(10,2) NOT NULL,
note VARCHAR(255),
PRIMARY KEY(product_id, valid_from)
);
Câu lệnh sau xóa cột note
khỏi bảng price_lists
:
ALTER TABLE sales.price_lists
DROP COLUMN note;
Cột price
trong bảng price_lists
có một ràng buộc CHECK
, do đó bạn không thể xóa nó theo cách thông thường được. Nếu bạn cố gắng thực hiện câu lệnh sau, bạn sẽ gặp lỗi:
ALTER TABLE sales.price_lists
DROP COLUMN price;
Đây là thông báo lỗi:
The object 'ck_positive_price' is dependent on column 'price'.
Để xóa cột price
, trước tiên hãy xóa ràng buộc CHECK
của nó:
ALTER TABLE sales.price_lists
DROP CONSTRAINT ck_positive_price;
Và sau đó, xóa cột price
bằng lệnh sau:
ALTER TABLE sales.price_lists
DROP COLUMN price;
Ví dụ sau đây xóa hai cột discount
và surcharge
cùng một lúc:
ALTER TABLE sales.price_lists
DROP COLUMN discount, surcharge;
Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh ALTER TABLE DROP COLUMN
trong SQL Server để xóa một hoặc nhiều cột khỏi bảng.