【问题标题】:How do you set autocommit in an SQL Server session?如何在 SQL Server 会话中设置自动提交?
【发布时间】:2010-11-08 13:57:12
【问题描述】:

如何在 SQL Server 会话中设置自动提交?

【问题讨论】:

    标签: sql-server session autocommit


    【解决方案1】:

    您可以通过设置implicit_transactions 关闭自动提交:

    SET IMPLICIT_TRANSACTIONS OFF
    

    设置为 ON 时,返回隐式事务模式。在隐式事务模式下,您所做的每一次更改都会启动一个您必须手动提交的事务。

    也许一个例子更清楚。这会将更改写入数据库:

    SET IMPLICIT_TRANSACTIONS ON
    UPDATE MyTable SET MyField = 1 WHERE MyId = 1
    COMMIT TRANSACTION
    

    这不会将更改写入数据库:

    SET IMPLICIT_TRANSACTIONS ON
    UPDATE MyTable SET MyField = 1 WHERE MyId = 1
    ROLLBACK TRANSACTION
    

    下面的例子会更新一行,然后报错没有要提交的事务:

    SET IMPLICIT_TRANSACTIONS OFF
    UPDATE MyTable SET MyField = 1 WHERE MyId = 1
    ROLLBACK TRANSACTION
    

    就像 Mitch Wheat 所说,自动提交是 Sql Server 2000 及更高版本的默认设置。

    【讨论】:

      【解决方案2】:

      我想要一种更持久、更快捷的方式。因为我倾向于在编写实际的更新/插入查询之前忘记添加额外的行。

      我通过检查选项中的 SET IMPLICIT_TRANSACTIONS 复选框来做到这一点。 导航到选项 在 Microsoft SQL Server Management Studio 中选择 Tools>Options>Query Execution>SQL Server>ANSI

      请确保在执行完查询后执行commitrollback。否则,您将运行查询的表将被其他人锁定。

      【讨论】:

      • 我试过了,我可以确认它似乎与编写 SET IMPLICIT_TRANSACTIONS ON 完全相同,因为这似乎是 24 小时内更正确的答案,我将奖励赏金。
      • @hawkeye 这应该是公认的答案。关闭 Autocommit 的目的是为了避免错误,这是通过更改设置来实现的。如果需要记住在运行 DML 之前运行SET IMPLICIT_TRANSACTIONS ON,则可能会忘记启动事务并运行立即更新数据库的语句。因此,正确的答案是始终按照此答案所述开启事务。
      【解决方案3】:

      自动提交是 SQL Server 的默认事务管理模式。 (SQL 2000 以上)

      参考:Autocommit Transactions

      【讨论】:

        【解决方案4】:

        使用 SQLServer 2005 Express,我发现即使在 autocommit off 的情况下,在没有我实际从 Management Studio 会话中发出提交命令的情况下也提交了对 Db 表的插入。唯一的区别是,当 autocommit 关闭时,我可以回滚所有插入;使用 *autocommit on,我不能。* 实际上,我错了。 关闭自动提交模式后,我只能在发出命令的 QA(查询分析器)窗口中看到更改。如果我弹出一个新的 QA(查询分析器)窗口,我看不到第一个窗口(会话)所做的更改,即它们没有提交!我必须发出明确的提交或回滚命令才能使更改对其他会话(QA 窗口)可见——我的错!一切正常。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多