Làm cách nào để bạn ngăn cơ sở dữ liệu bị rớt trong SQL Server?

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

  1. Kết nối với SQL Server Management Studio;
2

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 TestDbSampleDb đượ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

DROP DATABASE [ IF EXISTS ] database_name [,database_name2,...];

Code language: SQL [Structured Query Language] [sql]

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

Cannot drop database "database_name" because it is currently in use.

Code language: PHP [php]
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ọn

Cannot drop database "database_name" because it is currently in use.

Code language: PHP [php]
2, SQL Server sẽ báo lỗi

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

Cannot drop database "database_name" because it is currently in use.

Code language: PHP [php]

Ví dụ sau sử dụng câu lệnh DROP DATABASE để xóa cơ sở dữ liệu TestDb

DROP DATABASE IF EXISTS TestDb;

Code language: SQL [Structured Query Language] [sql]

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

SQL Server có thể ngăn ngừa mất dữ liệu như thế nào?

Sao lưu, Sao lưu và Sao lưu . Thường xuyên thực hiện các thủ tục sao lưu đảm bảo hoạt động kinh doanh được liên tục. Sao lưu có thể giúp ích rất nhiều khi cơ sở dữ liệu phát sinh sự cố.

Cơ sở dữ liệu nào không thể bị hủy?

Không thể xóa cơ sở dữ liệu hệ thống .

Sự khác biệt giữa việc loại bỏ cơ sở dữ liệu và sử dụng cơ sở dữ liệu ngoại tuyến là gì?

Trong hầu hết các trường hợp, các lệnh Ngoại tuyến và Tách có thể được thực thi một cách an toàn mà không bị mất dữ liệu. Tuy nhiên, khi bạn thực thi lệnh Drop Database, bạn sẽ mất gần như toàn bộ dữ liệu ngay lập tức và cách duy nhất để lấy lại dữ liệu đó là khôi phục bản sao lưu .

Sự khác biệt giữa cơ sở dữ liệu thả và XÓA là gì?

Lệnh DELETE xóa một hoặc nhiều bản ghi hiện có khỏi bảng trong cơ sở dữ liệu. Lệnh DROP xóa toàn bộ bảng khỏi cơ sở dữ liệu . Lệnh TRUNCATE xóa tất cả các hàng khỏi bảng hiện có, để lại hàng có tên cột.

Chủ Đề