closures到特定数据库的所有连接,而不会中断整个服务

我们在单个SQL Server 2000实例中有一些数据库,其中一个是沙箱。 我的老板需要能够使用我没有资源的实用程序在沙盒上恢复新的数据。 如果有人连接到沙箱,这种恢复失败。

我有访问它的另一个应用程序使用连接池,也可能有人使用其他应用程序来访问我无法控制的沙箱。

我怎样才能将所有人从沙箱启动,包括连接池,而不需要触摸同一实例上运行的任何其他数据库?

(我已经看到使用Management Studio 2008(来自2008 Express)的解决scheme,但是a)我需要能够通过命令行或脚本以某种方式完成,所以我的老板可以在不安装Management Studio的情况下运行它, b)他们谈论的上下文菜单选项似乎并不存在。)

我在网上找到了它:

ALTER DATABASE db SET SINGLE_USER WITH ROLLBACK IMMEDIATE

创建运行此恢复的sp,然后将其还原为常规。

(ALTER DATABASE foo SET MULTI_USER;)