SQL Server中使用SQL語句關閉數據庫連接和刪除數據庫文件


有時候我們想用DROP DATABASE語句刪除數據庫和數據庫文件,會刪不掉,因為有其他人正在使用要刪除的數據庫,這里有一個方法可以強制斷開其它數據庫連接,再刪除數據庫。

假如我們要刪除的數據庫是[TestDB],我們可以用下面的語句:

USE [master]--注意不能夠USE [TestDB],因為[TestDB]即將被刪除,所以不能夠將當前連接設置為連接到[TestDB],否則下面的DROP DATABASE語句會報錯

ALTER DATABASE [TestDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;--首先將數據庫改為單用戶模式,WITH ROLLBACK IMMEDIATE提示切斷所有其它連接到[TestDB]的數據庫連接
DROP DATABASE [TestDB];--刪除[TestDB]及其數據庫文件

所以這個方法的核心就是先更改數據庫模式為單用戶模式"SINGLE_USER",那么什么是數據庫的單用戶模式呢?我這里貼出一個從網上找到的解釋:

So in single_user mode - you would be quite unlikely to have locking problems in that database. It is what it sounds like - single user - and it doesn't mean Single Username - it means one user. So it's used when you as a DBA want to do something that can't be done with others users in. Maybe you are trying to do a repair option of a checkdb. Maybe you are trying to change some object metadata and don't have a better way to kick other users out. Etc.

上面的解釋來自:What happens when SQL Server is in Single User Mode?

所以數據庫單用戶模式"SINGLE_USER",是指只能有一個用戶連接能夠連接到數據庫,這樣我們就可以在沒有其它數據庫連接的情況下,執行DROP DATABASE語句來刪除數據庫和其數據庫文件了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM