2015-06-24 1 views
1

Я пытаюсь выполнить следующий запрос на моей базе данных Windows Azure использование главных«Оператор DATABASE ALTER должен быть единственным оператором в партии»

ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
ALTER DATABASE Test SET MULTI_USER 

При попытке запустить его, я получаю ошибку

Инструкция ALTER DATABASE должна быть единственным заявлением в партии.

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

+0

В качестве примечания, SINGLE_USER в настоящее время недоступен на SQL Azure V12. – cbattlegear

ответ

3

Как следует ошибка, ваше альтер заявление может быть только в пакете - что-то, как это должно работать:

GO 
ALTER DATABASE Test SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 
ALTER DATABASE Test SET MULTI_USER 
GO 

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

+0

Теперь я получаю это. Неверный синтаксис рядом с 'SINGLE_USER'. Неверный синтаксис рядом с 'MULTI_USER'. –

+0

Как указано в cbattlegear, изменения режима пользователя в настоящее время недоступны на лазурном фоне, вот еще один вопрос, который кажется связанным: http://stackoverflow.com/questions/3801029/kill-all-user-connections-in-sql- azure – Kritner

+0

Извините, я не сказал, что в своем ответе я не особенно знаком с sql azure, просто получил это сообщение об ошибке раньше и имел решение для него: P – Kritner

0

Если вы просто хотите закрыть соединения, вы можете попробовать установить его на limited_user. ALTER DATABASE ОДИНОЧНЫЙ ПОЛЬЗОВАТЕЛЬ НЕ ПОДДЕРЖИВАЕТСЯ в V12. Если вы хотите закрыть все соединения и нормально, если они снова подключились, вы можете убить их, используя оператор Kill в сочетании с sys.dm_Exec_Requests/Другой вариант - установить ReadOnly, а затем Read_write. В SQL DB нет единой пользовательской опции.

Смежные вопросы