Xóa column trong SQL Server - SQL Server căn bản
Trong bài này mình sẽ hướng dẫn bạn cách xóa một hoặc nhiều column ra khỏi table trong SQL Server, lệnh này hữu ích khi bạn muốn loại bõ những column không còn dùng tới trong database. 1. Lênh ALTER TABLE DROP COLUMN Để xóa column ra khỏi table thì ta sư dụng lệnh ALTER TABLE DROP COLUMN ...
Trong bài này mình sẽ hướng dẫn bạn cách xóa một hoặc nhiều column ra khỏi table trong SQL Server, lệnh này hữu ích khi bạn muốn loại bõ những column không còn dùng tới trong database.
1. Lênh ALTER TABLE DROP COLUMN
Để xóa column ra khỏi table thì ta sư dụng lệnh ALTER TABLE DROP COLUMN với cú pháp như sau:
ALTER TABLE table_name DROP column_name;
Trong đó:
table_name
là bảng muốn xóa columntable_name
là tên column muốn xóa
Bạn phải kiểm tra điều kiện ràng buộc trước khi xóa bởi vì nếu column cần xóa là khóa ngoại thì rất huy hiểm, sẽ ảnh hướng đến ràng buộc toàn vẹn. Tuy nhiên bạn yên tâm vì nếu column đó là foreign key hoặc primary key thì SQL Server sẽ không cho bạn xóa.
Nếu bạn muốn xóa một lúc nhiều column thì sử dụng cú pháp sau:
ALTER TABLE table_name DROP column_name_1, column_name_2,...;
Danh sách các column sẽ được ngăn cách nhau bởi đấu phẩy.
2. Ví dụ xóa column trong SQL Server
Trước tiên bạn hãy tạo một table băng câu lệnh SQL sau:
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) );
Xóa column note
Bây giờ mình muốn xóa column note
ra khỏi table price_lists
.
ALTER TABLE sales.price_lists DROP COLUMN note;
Xóa column price
Column price có CHECK tên là ck_positive_price
nên khi xóa column này ta phải xóa ck_positive_price
trước, nếu không sẽ bị báo lỗi: The object 'ck_positive_price' is dependent on column 'price'.
ALTER TABLE sales.price_lists DROP CONSTRAINT ck_positive_price;
ALTER TABLE sales.price_lists DROP COLUMN price;
Xóa column discount, surcharge
Vì hai column này không có ràng buộc gì nên xóa bình thường.
ALTER TABLE sales.price_lists DROP COLUMN discount, surcharge;
Bạn hãy tự thực hành bằng cách xóa các column còn lại nhé, thử xóa luôn primary key xem có nhận được thông báo lôi gì không.