GETTING STARTED
DATA DEFINITION
DATA QUERIES
CONDITION & OPERATORS
EXPLORED
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Xóa bảng với lệnh Drop Table trong SQL Server

Trong bài này mình sẽ hướng dẫn bạn cách sử dụng lệnh DROP TABLE để xóa một hoặc nhiều table trong SQL Server.

Đôi khi trong quá trình tạo dữ liệu bạn tạo dư thì có thể sử dụng DROP TABLE để xóa, lệnh này ít khi sử dụng, tuy nhiên bạn nên tìm hiểu vì có nhiều vấn đề liên quan.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Cú pháp lệnh DROP TABLE

Trước tiên bạn hãy xem cú pháp sau:

DROP TABLE [IF EXISTS]  [database_name.][schema_name.]table_name;

Trong đó:

  • IF EXISTS có thể dùng hoặc không, nếu có thì sẽ không bị lỗi nếu table cần xóa không tồn tại.
  • database_name là tên database, có thể dùng hoặc không, nếu không thì sẽ xóa table ở database hiện tại.
  • schema_name là tên schema, có thể dùng hoặc không, nếu không thì sẽ là schema mặc định dbo.
  • table_name là tên table cần xóa

Để xóa nhiều bảng thì chỉ việc ngăn cách tên các table bằng dẩy phẩy.

DROP TABLE [database_name.][schema_name.]table_name_1,
             [database_name.][schema_name.]table_name_2,
                  ...
             [database_name.][schema_name.]table_name_n;

Lưu ý: Khi xóa table thì SQL Server sẽ xóa toàn bộ dữ liệu, khóa ngoại, trigger, permision liên quan đến table đó. Tuy nhiên với View Stored Procedure thì bạn phải sử dụng lệnh DROP VIEWDROP PROCEDURE để xóa.

2. Các trường hợp thường gặp khi xóa table

Bây giờ chúng ta cùng tìm hiểu những trường hợp thường xóa table thường thấy trong thực tế và các lưu ý kèm theo nhé.

Không tồn tại table cần xóa

Ví dụ dưới đây sẽ xóa table revenues nằm trong schema sales.

DROP TABLE IF EXISTS sales.revenues;

Lệnh này chạy sẽ không bao giờ lỗi vì nó sẽ kiểm tra table cần xóa có tồn tại không, nếu tồn tại thì xóa, không thì trả về kết quả là không xóa table nào cả.

Xóa table không có ràng buộc

Trường hợp này bạn thực hiện bình thường. Giả sử ta có table sau:

CREATE TABLE sales.delivery (
    delivery_id INT PRIMARY KEY,
    delivery_note VARCHAR (255) NOT NULL,
    delivery_date DATE NOT NULL
);

Mình sẽ xóa table này bằng lệnh sau:

DROP TABLE sales.delivery;

Xóa table đang có khóa ngoại trỏ tới

Trường hợp đang có một table nào đó liên kết khóa ngoại với table cần xóa thì bạn phải xóa khóa ngoại trước rồi mới xóa table.

Giả sử mình có hai table sau:

CREATE SCHEMA procurment;
GO
 
CREATE TABLE procurment.supplier_groups (
    group_id INT IDENTITY PRIMARY KEY,
    group_name VARCHAR (50) NOT NULL
);
 
CREATE TABLE procurment.suppliers (
    supplier_id INT IDENTITY PRIMARY KEY,
    supplier_name VARCHAR (50) NOT NULL,
    group_id INT NOT NULL,
    CONSTRAINT fk_name FOREIGN KEY (group_id) 
    REFERENCES procurement.supplier_groups (group_id)
);

Bảng supplier_groups là bảng cha, còn bảng suppliers là bảng con nên khi thực hiện xóa bảng cha ta phải xóa ràng buộc khóa ngoại giữa chúng, còn nếu bạn xóa bảng con thì không cần làm gì cả. Nếu bạn cố tình xóa bảng cha mà không xóa khóa ngoại thì sẽ gặp lỗi như sau:

Could not drop object 'procurement.supplier_groups' 
because it is referenced by a FOREIGN KEY constraint.

Tóm lại các bước thực hiện như sau:

ALTER TABLE Orders
DROP CONSTRAINT fk_name;

DROP TABLE procurement.supplier_groups;

Nếu bạn xóa cả hai bảng thì nên đặt bảng con trước bảng cha thì lúc này ta không cần phải xóa ràng buộc khóa ngoại.

DROP TABLE procurement.suppliers, procurement.supplier_groups;

Trên là cách sử dụng lệnh DROP TABLE để xóa table ra khỏi database trong SQL Server.

Cùng chuyên mục:

Hàm CHAR trong SQL Server

Hàm CHAR trong SQL Server

Cách sử dụng hàm CHAR trong SQL Server

Hàm CHARINDEX trong SQL Server

Hàm CHARINDEX trong SQL Server

Cách sử dụng hàm CHARINDEX trong SQL Server

Hàm CONCAT trong SQL Server

Hàm CONCAT trong SQL Server

Cách sử dụng hàm CONCAT trong SQL Server

Hàm + trong SQL Server

Hàm + trong SQL Server

Cách sử dụng hàm + trong SQL Server

Hàm DATALENGTH trong SQL Server

Hàm DATALENGTH trong SQL Server

Cách sử dụng hàm DATALENGTH trong SQL Server

Hàm LEFT trong SQL Server

Hàm LEFT trong SQL Server

Cách sử dụng hàm LEFT trong SQL Server

Hàm LEN trong SQL Server

Hàm LEN trong SQL Server

Cách sử dụng hàm LEN trong SQL Server

Hàm LOWER trong SQL Server

Hàm LOWER trong SQL Server

Cách sử dụng hàm LOWER trong SQL Server

Hàm LTRIM trong SQL Server

Hàm LTRIM trong SQL Server

Cách sử dụng hàm LTRIM trong SQL Server

Hàm NCHAR trong SQL Server

Hàm NCHAR trong SQL Server

Cách sử dụng hàm NCHAR trong SQL Server

Hàm PATINDEX trong SQL Server

Hàm PATINDEX trong SQL Server

Cách sử dụng hàm PATINDEX trong SQL Server

Hàm REPLACE trong SQL Server

Hàm REPLACE trong SQL Server

Cách sử dụng hàm REPLACE trong SQL Server

Hàm RIGHT trong SQL Server

Hàm RIGHT trong SQL Server

Cách sử dụng hàm RIGHT trong SQL Server

Hàm RTRIM trong SQL Server

Hàm RTRIM trong SQL Server

Cách sử dụng hàm RTRIM trong SQL Server

Hàm SPACE trong SQL Server

Hàm SPACE trong SQL Server

Cách sử dụng hàm SPACE trong SQL Server

Hàm STR trong SQL Server

Hàm STR trong SQL Server

Cách sử dụng hàm STR trong SQL Server

Hàm UPPER trong SQL Server

Hàm UPPER trong SQL Server

Cách sử dụng hàm UPPER trong SQL Server

Hàm SUBSTRING trong SQL Server

Hàm SUBSTRING trong SQL Server

Cách sử dụng hàm SUBSTRING trong SQL Server

Hàm STUFF trong SQL Server

Hàm STUFF trong SQL Server

Cách sử dụng hàm STUFF trong SQL Server

Hàm ABS trong SQL Server

Hàm ABS trong SQL Server

Cách sử dụng hàm ABS trong SQL Server

Top