Trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh DROP TABLE
trong SQL Server để xóa một hoặc nhiều bảng khỏi cơ sở dữ liệu.
Đôi khi, bạn muốn xóa một bảng không còn được sử dụng nữa. Để làm điều này, bạn sử dụng câu lệnh DROP TABLE
như sau:
DROP TABLE [IF EXISTS] [database_name.][schema_name.]table_name;
Trong cú pháp này:
DROP TABLE
sẽ xóa bảng trong cơ sở dữ liệu hiện được kết nối.IF EXISTS
để xóa bảng chỉ khi nó tồn tại. Mệnh đề IF EXISTS
đã được hỗ trợ từ SQL Server 2016 13.x. Nếu bạn xóa một bảng không tồn tại, bạn sẽ gặp lỗi. Mệnh đề IF EXISTS
chỉ xóa bảng nếu nó đã tồn tại.Khi SQL Server xóa một bảng, nó cũng xóa tất cả dữ liệu, trigger, ràng buộc, quyền của bảng đó. Ngoài ra, SQL Server không xóa view và stored procedure tham chiếu đến bảng bị xóa. Do đó, để xóa các đối tượng phụ thuộc này một cách rõ ràng, bạn phải sử dụng câu lệnh DROP VIEW
và DROP PROCEDURE
.
SQL Server cho phép bạn xóa nhiều bảng cùng một lúc bằng một câu lệnh DROP TABLE
như sau:
DROP TABLE [database_name.][schema_name.]table_name_1,
[schema_name.]table_name_2, …
[schema_name.]table_name_n;
Hãy xem một số ví dụ về việc sử dụng câu lệnh DROP TABLE
trong SQL Server.
Câu lệnh sau xóa một bảng có tên revenues
trong lược đồ sales
:
DROP TABLE IF EXISTS sales.revenues;
Trong ví dụ này, bảng revenues
không tồn tại. Bởi vì nó sử dụng mệnh đề IF EXISTS
, câu lệnh thực thi thành công mà không có bảng nào bị xóa.
Câu lệnh sau tạo một bảng mới có tên delivery
trong lược đồ sales
:
CREATE TABLE sales.delivery (
delivery_id INT PRIMARY KEY,
delivery_note VARCHAR (255) NOT NULL,
delivery_date DATE NOT NULL
);
Để xóa bảng delivery
, bạn sử dụng câu lệnh sau:
DROP TABLE sales.delivery;
Câu lệnh sau tạo hai bảng mới có tên là supplier_groups
và suppliers
trong lược đồ procurement
:
CREATE SCHEMA procurement;
GO
CREATE TABLE procurement.supplier_groups (
group_id INT IDENTITY PRIMARY KEY,
group_name VARCHAR (50) NOT NULL
);
CREATE TABLE procurement.suppliers (
supplier_id INT IDENTITY PRIMARY KEY,
supplier_name VARCHAR (50) NOT NULL,
group_id INT NOT NULL,
FOREIGN KEY (group_id) REFERENCES procurement.supplier_groups (group_id)
);
Hãy thử xóa bảng supplier_groups
:
DROP TABLE procurement.supplier_groups;
SQL Server sẽ đưa ra lỗi sau:
Could not drop object 'procurement.supplier_groups' because it is referenced by a FOREIGN KEY constraint.
SQL Server không cho phép bạn xóa một bảng được tham chiếu bởi một ràng buộc khóa ngoại. Để xóa bảng này, trước tiên bạn phải xóa ràng buộc khóa ngoại tham chiếu hoặc bảng tham chiếu. Trong trường hợp này, bạn phải xóa ràng buộc khóa ngoại trong bảng suppliers
hoặc xóa bảng suppliers
trước khi xóa bảng supplier_groups
.
DROP TABLE procurement.supplier_groups;
DROP TABLE procurement.suppliers;
Nếu bạn sử dụng một câu lệnh DROP TABLE
duy nhất để xóa cả hai bảng, thì bảng tham chiếu phải được liệt kê trước tiên như được trình bày trong truy vấn bên dưới:
DROP TABLE procurement.suppliers, procurement.supplier_groups;
Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh DROP TABLE
trong SQL Server để xóa một hoặc nhiều bảng khỏi cơ sở dữ liệu.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
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.
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ờ.
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.
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.