Закрытие всех соединений с определенной базой данных без отключения всего сервиса - PullRequest
1 голос
/ 29 октября 2009

У нас есть несколько баз данных в одном экземпляре SQL Server 2000, одна из которых - песочница. Мой босс должен иметь возможность восстанавливать свежие данные через песочницу с помощью утилиты, к которой у меня нет источника. Такое восстановление завершится неудачно, если кто-либо подключен к песочнице.

В другом приложении, к которому у меня есть доступ, используется пул соединений, а также могут быть люди, использующие другие приложения для доступа к песочнице, которой я не могу управлять.

Как я могу загрузить всех из песочницы, включая пул соединений, не касаясь других баз данных, работающих на том же экземпляре?

(Я видел решения, которые используют Management Studio 2008 (из 2008 Express), но а) Мне нужно иметь возможность сделать это из командной строки или из сценария, чтобы мой босс мог запустить его без установки Management Studio, и b) опции контекстного меню, о которых они говорили, в любом случае, похоже, там не были.)

1 Ответ

1 голос
/ 29 октября 2009

Я нашел это в Интернете:

ALTER DATABASE dB SET SINGLE_USER с немедленным отступом

создайте sp, который запускает это восстановление, а затем восстановите его до обычного.

(ALTER DATABASE foo SET MULTI_USER;)

...