Nếu bạn từng cố xóa cơ sở dữ liệu khi người dùng được kết nối với Cơ sở dữ liệu máy chủ SQL thì bạn sẽ nhận được thông báo lỗi được đề cập bên dưới
Thông báo lỗi
Drop failed for Database 'MyTechMantra'. [Microsoft.SqlServer.Smo]
Cannot drop database "" because it is currently in use. [Microsoft SQL Server, Error: 3702]
Cannot drop database because it is currently in use Microsoft SQL Server Error 3702
Lý do khiến bạn gặp phải lỗi nêu trên là khi SQL Server không thể có quyền truy cập độc quyền vào Cơ sở dữ liệu máy chủ SQL
Cảnh báo. Hãy cẩn thận trước khi thực hiện Lệnh Drop Database TSQL [Thuật ngữ thường được sử dụng hơn là Drop cơ sở dữ liệu]. Làm theo các bước được đề cập trong bài viết này và tìm hiểu Cách xóa cơ sở dữ liệu trong SQL Server.
Thông thường nhất, để drop cơ sở dữ liệu, nó được gọi là “sql drop db“, “drop db” hoặc “dropdatabase“. Tuy nhiên, cú pháp đúng để Drop Database trong SQL Server là DROP DATABASE
Tuy nhiên, Lệnh DROP DATABASE sẽ không thành công khi những người dùng khác đã được kết nối với cơ sở dữ liệu. Kiểm tra ví dụ được đề cập bên dưới trong bài viết để hiểu Cách hủy cơ sở dữ liệu bằng cách hủy kết nối hiện có .
Các cách khác nhau để có quyền truy cập độc quyền vào Cơ sở dữ liệu bị xóa trong SQL Server [Cơ sở dữ liệu DROP của SQL Server]
- Bỏ cơ sở dữ liệu SQL Server bằng SQL Server Management Studio [SSMS]
- Bỏ máy chủ cơ sở dữ liệu SQL bằng truy vấn TSQL
Thả cơ sở dữ liệu trong SQL Server bằng SQL Server Management Studio
- Kết nối với SQL Server Management Studio;
2. Chọn hộp kiểm “Đóng các kết nối hiện có” để loại bỏ các kết nối hiện có trước khi loại bỏ cơ sở dữ liệu máy chủ SQL và nhấp vào OK để loại bỏ cơ sở dữ liệu trong SQL Server
3. Bằng cách chọn tùy chọn “Xóa thông tin lịch sử sao lưu và khôi phục cho cơ sở dữ liệu”, bạn sẽ có thể xóa lịch sử sao lưu và khôi phục cơ sở dữ liệu được lưu trữ trong cơ sở dữ liệu hệ thống MSDB
Bỏ máy chủ cơ sở dữ liệu SQL bằng truy vấn TSQL
Thực thi mã TSQL bên dưới để xóa Cơ sở dữ liệu trong Máy chủ SQL bằng Truy vấn TSQL
/* Delete Database Backup and Restore History from MSDB System Database */
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'MyTechMantra'
GO
/* Query to Get Exclusive Access of SQL Server Database before Dropping the Database */
USE [master]
GO
ALTER DATABASE [MyTechMantra] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
/* Query to Drop Database in SQL Server */
DROP DATABASE [MyTechMantra]
GO
Phần kết luận
Trong bài viết này, bạn đã thấy các cách khác nhau mà bạn có thể thực hiện trong Cơ sở dữ liệu SQL Server Drop bằng cách có quyền truy cập độc quyền vào Cơ sở dữ liệu SQL Server
Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu cách xóa cơ sở dữ liệu trong phiên bản SQL Server bằng cách sử dụng câu lệnh DROP DATABASE
và SQL Server Management Studio
Lưu ý rằng hướng dẫn này sử dụng TestDb
và SampleDb
được tạo trong hướng dẫn CREATE DATABASE
để trình diễn
Sử dụng câu lệnh SQL Server DROP DATABASE
để xóa cơ sở dữ liệu
Để xóa cơ sở dữ liệu hiện có khỏi phiên bản SQL Server, bạn sử dụng câu lệnh DROP DATABASE
Câu lệnh DROP DATABASE
cho phép bạn xóa một hoặc nhiều cơ sở dữ liệu với cú pháp sau
Code language: SQL [Structured Query Language] [sql]
DROP DATABASE [ IF EXISTS ] database_name [,database_name2,...];
Trong cú pháp này, bạn chỉ định tên của cơ sở dữ liệu mà bạn muốn loại bỏ sau các từ khóa DROP DATABASE
. Nếu bạn muốn xóa nhiều cơ sở dữ liệu bằng một câu lệnh, bạn có thể sử dụng danh sách tên cơ sở dữ liệu được phân tách bằng dấu phẩy sau mệnh đề DROP DATABASE
Tùy chọn
2 có sẵn từ SQL Server 2016 [13. x]. Nó cho phép bạn xóa cơ sở dữ liệu một cách có điều kiện chỉ khi cơ sở dữ liệu đó đã tồn tại. Nếu bạn cố xóa cơ sở dữ liệu không tồn tại mà không chỉ định tùy chọnCode language: PHP [php]
Cannot drop database "database_name" because it is currently in use.
2, SQL Server sẽ báo lỗiCode language: PHP [php]
Cannot drop database "database_name" because it is currently in use.
Trước khi xóa cơ sở dữ liệu, bạn phải đảm bảo những điểm quan trọng sau
- Đầu tiên, câu lệnh
DROP DATABASE
xóa cơ sở dữ liệu và cả các tệp đĩa vật lý được sử dụng bởi cơ sở dữ liệu. Do đó, bạn nên sao lưu cơ sở dữ liệu phòng trường hợp sau này muốn khôi phục lại - Thứ hai, bạn không thể xóa cơ sở dữ liệu hiện đang được sử dụng
Cố gắng loại bỏ cơ sở dữ liệu hiện đang được sử dụng gây ra lỗi sau
Code language: PHP [php]
Cannot drop database "database_name" because it is currently in use.
Ví dụ sau sử dụng câu lệnh DROP DATABASE
để xóa cơ sở dữ liệu TestDb
Code language: SQL [Structured Query Language] [sql]
DROP DATABASE IF EXISTS TestDb;
Sử dụng SQL Server Management Studio để loại bỏ cơ sở dữ liệu
Bạn có thể làm theo các bước sau để xóa cơ sở dữ liệu SampleDb
Đầu tiên, nhấp chuột phải vào tên cơ sở dữ liệu mà bạn muốn xóa và chọn mục menu Xóa
Thứ hai, bỏ chọn hộp kiểm Xóa bản sao lưu và khôi phục thông tin lịch sử cho cơ sở dữ liệu, chọn hộp kiểm Đóng các kết nối hiện có và nhấp vào nút OK để xóa cơ sở dữ liệu
Thứ ba, xác minh rằng cơ sở dữ liệu đã bị xóa khỏi Object Explorer
Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh SQL Server DROP DATABASE
và SQL Server Management Studio để xóa cơ sở dữ liệu trong phiên bản SQL Server