'ALTER DATABASE语句必须是批处理中唯一的语句'

时间:2015-06-24 14:53:03

标签: sql azure-sql-database

我正在尝试在Windows Azure数据库上执行以下查询 使用主人

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

尝试运行时我收到错误

  

ALTER DATABASE语句必须是批处理中唯一的语句。

有关如何解决此问题的任何建议。我基本上想要的是关闭我的数据库上的所有当前连接。

2 个答案:

答案 0 :(得分:3)

正如错误所暗示的那样,你的alter语句可能是批处理中唯一的 - 这样的东西应该起作用:

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

GO表示批处理结束,因此每个alter语句都是一个单独的批处理。

答案 1 :(得分:0)

如果您只想关闭连接,可以尝试将其设置为restricted_user。在V12中不支持ALTER DATABASE单个用户。如果要关闭所有连接并且如果它们重新连接就可以,则可以通过将Kill语句与sys.dm_Exec_Requests一起使用来终止它们。另一个选项是设置ReadOnly然后设置Read_write。 SQL DB中没有单个用户选项。