错误:多语句事务中不允许ALTER DATABASE语句

时间:2015-07-28 11:49:44

标签: sql tsql sql-server-2012

我试图运行以下查询,但它给了我 以下错误消息:

  

多语句中不允许使用ALTER DATABASE语句   事务。

查询是:

 ALTER DATABASE TSQL2012
 SET READ_COMMITTED_SNAPSHOT ON;

如图所示:任何想法为什么?

enter image description here

3 个答案:

答案 0 :(得分:7)

多语句事务是由BEGIN TRANSACTION语句显式创建的事务,或者是使用Implicit Transactions模式创建的事务 - 也就是说,语句已执行并且,在下一个语句执行之前,transaction count仍然大于0。

因此,这意味着,在您尝试执行代码的连接上,事务计数已经大于零。

您应该执行ROLLBACK(如果您不知道交易中已经完成的事情,则最安全)或COMMIT(最安全地保留已执行的数据更改),然后您就可以执行执行ALTER DATABASE语句。

答案 1 :(得分:0)

我会让事情变得更轻松。

事情是那里有一个未提交的交易。 所以,sql server只是希望你先提交然后运行这个查询。

如果您不想要该交易,那么只需关闭该查询窗口,它就会询问您是要保存还是不保存。  然后打开新的,然后运行所需的查询。

答案 2 :(得分:0)

在我的情况下,类似的问题通过切换到主数据库来解决,可能是因为你不能同时使用数据库并改变它。