即使在使用中也使用MSBuild删除数据库

Ach*_*khi 8 sql-server msbuild sqlcmd

我在MSBuild文件中使用以下命令来删除数据库

sqlcmd -E -S <ServerName> -Q "DROP DATABASE <DBName>"
Run Code Online (Sandbox Code Playgroud)

但有时我会得到错误

无法删除数据库,因为它当前正在使用中.

我应该使用什么命令,以便即使数据库被使用也会被丢弃?

Mic*_*son 19

您可以将数据库设置SINGLE_USER为删除所有现有连接.

sqlcmd -E -S <ServerName> -Q "ALTER DATABASE <DBName> SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
sqlcmd -E -S <ServerName> -Q "DROP DATABASE <DBName>"
Run Code Online (Sandbox Code Playgroud)

这是优先循环每个连接并逐个删除它们,因为一些应用程序将立即重新连接.


Sha*_*ran 3

终止与数据库的所有连接。请参见终止与数据库的所有活动连接

现在,在执行上述过程后发出 DROP DATABASE 命令。