Отключите активные соединения SQL от SMO - PullRequest
3 голосов
/ 16 февраля 2012

Есть ли способ использовать SMO для отключения всех активных пользователей от базы данных SQL, чтобы я мог выполнить восстановление базы данных?

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

Как восстановить резервную копию, как отключить все активные подключения?

Эта ссылка также является аналогичным вопросом, но остается без ответа:

http://us.generation -nt.com / ответ / SMO-открепление-терпит неудачу, из-за активных-подключение-помощь-122972951.html

Ответы [ 2 ]

6 голосов
/ 16 февраля 2012

Вы можете использовать метод KillAllProcesses. add-type -AssemblyName "Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" $serverObject = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -argumentList 'YourServerNameHere' $serverObject.KillAllProcesses('YourDatabaseNameHere') Если вы хотите проверить, вы можете использовать метод GetActiveDBConnectionCount. Но вы можете подождать несколько секунд для отката и тому подобное. $serverObject.GetActiveDBConnectionCount('YourDatabaseNameHere')

1 голос
/ 16 февраля 2012

Отключение всех активных пользователей не является функциональностью сборки.Вы должны использовать ExecuteNonQuery.Я нашел пример здесь: http://www.techtalkz.com/microsoft-windows-powershell/132252-run-transact-sql-using-smo.html

...