【问题标题】:Error: There are uncommitted transactions错误:有未提交的事务
【发布时间】:2011-03-21 13:39:36
【问题描述】:

我在 SSMS 中打开一个新窗口并运行:

SET ANSI_DEFAULTS ON 
GO

CREATE PROCEDURE [dbo].[zzz_test2]
(
    @a    int
)
AS
    SET NOCOUNT ON
    SET @a=1
    RETURN 0
GO

然后关闭窗口,这会导致以下警告:

There are uncommitted transactions. Do you wish to commit these before closing the window?

发生了什么事??

当我打开一个新的 SSMS 窗口并运行它时:

SET ANSI_NULLS  ON  
GO    

CREATE PROCEDURE [dbo].[zzz_test2]
(
    @a    int
)
AS
    SET NOCOUNT ON
    SET @a=1
    RETURN 0
GO

然后关闭窗口,我没有收到任何警告。

【问题讨论】:

    标签: sql-server sql-server-2005 tsql


    【解决方案1】:

    作为described in the documentation 用于ANSI_DEFAULTS

    启用 (ON) 时,此选项启用 以下 ISO 设置:

    SET ANSI_NULLS
    SET CURSOR_CLOSE_ON_COMMIT
    SET ANSI_NULL_DFLT_ON
    SET IMPLICIT_TRANSACTIONS
    SET ANSI_PADDING
    SET QUOTED_IDENTIFIER
    SET ANSI_WARNINGS
    

    IMPLICIT_TRANSACTIONS 开启时,正如here 所记录的那样。

    自动进行的交易 由于此设置而打开 必须明确提交 或最终由用户回滚 交易时间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 2011-04-30
      • 2015-11-12
      • 2011-03-13
      相关资源
      最近更新 更多