如何在不先停止SQL实例的情况下重命名数据库以刷新连接

有没有办法强制数据库进入单用户模式,所以脚本可以运行重命名数据库? 我发现我必须重新启动SQL的实例(以强制从Web应用程序的任何连接等),然后我可以运行此脚本:

USE master go sp_dboption MDS, "single user", true go sp_dboption StagingMDS, "single user", true go sp_renamedb MDS, LastMonthMDS go sp_renamedb StagingMDS, MDS go sp_dboption LastMonthMDS, "single user", false go sp_dboption MDS, "single user", false go 

运行此脚本后,我可以为我的Web应用程序重新启动IIS,并可以连接到新的生产数据库。

以上所有的工作都很好,我们已经这么做了很多年了,但是现在我们已经升级到了SQL 2008,SQL2008实例还托pipe了其他支持其他Web应用程序的数据库。

因此,而不是使用重新启动整个SQL实例来启用2个数据库上的后续单用户模式,是否有一个较less干扰的方式来完成这一点? 谢谢。

这应该杀死任何打开的数据库连接:

使用rollback立即修改数据库mds设置single_user