ALTER TABLE DROP COLUMN trong SQL Server

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 discountsurcharge 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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *