相关疑难解决方法(0)

166
推荐指数
4
解决办法
12万
查看次数

如何在SQL Server事务中设置"SET XACT_ABORT ON"?

我想SET XACT_ABORT ON在事务中设置SQL Server 2008R2存储过程,所以在创建脚本中这样做:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET XACT_ABORT ON
GO

CREATE PROCEDURE MyProc
AS
BEGIN TRAN  
    ... 
IF @@ERROR <> 0
BEGIN
    GOTO Done
END 
    ... 
IF @@ERROR <> 0
BEGIN
    GOTO Done
END 
COMMIT TRAN     
Done:
IF @@ERROR <> 0
BEGIN
    ROLLBACK TRAN
END
GO
Run Code Online (Sandbox Code Playgroud)

成功创建后,我通过单击"修改"存储过程选项检查事务,并在生成的ALTER PROCEDURE脚本中看不到SET XACT_ABORT ON行:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE MyProc
AS
BEGIN TRAN
...
Run Code Online (Sandbox Code Playgroud)

我错在哪里或者诀窍是什么?如何正确定义SET …

t-sql sql-server stored-procedures transactions sql-server-2008

4
推荐指数
1
解决办法
5400
查看次数