IF语句中的回滚事务出错

时间:2014-10-30 16:16:12

标签: sql sql-server sql-server-2008 stored-procedures transactions

为什么我在sql server中有这样的程序:

CREATE PROCEDURE my_proc
    @x      INT
AS
    BEGIN TRANSACTION my_proc
    BEGIN TRY
        IF (@x < 0)
        BEGIN
           ROLLBACK TRANSACTION my_proc
        END

        UPDATE test SET x = @x
        COMMIT TRANSACTION my_proc
    END
    BEGIN CATCH
        ROLLBACK TRANSACTION my_proc
    END CATCH
GO

我执行另一个调用此过程的过程传递参数...

exec secondProc 10

即使该值大于0,我也会收到此错误?

  

无法回滚my_proc,没有该名称的事务或保存点   找到。   EXECUTE后的事务计数表示不匹配的数量   BEGIN和COMMIT语句

0 个答案:

没有答案