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.

SQL ServerĐịnh nghĩa dữ liệu trong SQL Server
Bài Viết Liên Quan:
GUID trong SQL Server
Trung Nguyen 12/03/2022
GUID trong SQL Server

Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.

Kiểu dữ liệu DATETIMEOFFSET trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATETIMEOFFSET trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.

Kiểu dữ liệu TIME trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu TIME trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.

Kiểu dữ liệu DATE trong SQL Server
Trung Nguyen 12/03/2022
Kiểu dữ liệu DATE trong SQL Server

Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.