回滚事务SQL后THROW



嗨,我有一个存储过程,我已经按照要求进行了事务处理,这是我的SP

CREATE PROCEDURE ProcName
@Id INT,
@user_id INT
AS
 BEGIN
    BEGIN TRANSACTION [transName]
    BEGIN TRY
        DELETE 
        FROM    table1
        WHERE   UserId= @user_id 
        UPDATE  table2
        SET     DATE_MODIFIED = GETDATE()
        WHERE   ID= @Id
        COMMIT TRANSACTION [transName]
    END TRY
BEGIN CATCH
        ROLLBACK TRANSACTION [transName]
        THROW
END CATCH
END

我在THROW附近得到了一个类似于exeception的错误语法,这可以告诉我哪里出了问题。

得到答案

CREATE PROCEDURE ProcName
@Id INT,
@user_id INT
AS
 BEGIN
    BEGIN TRANSACTION [transName]
    BEGIN TRY
        DELETE 
        FROM    table1
        WHERE   UserId= @user_id 
        UPDATE  table2
        SET     DATE_MODIFIED = GETDATE()
        WHERE   ID= @Id
        COMMIT TRANSACTION [transName]
    END TRY
BEGIN CATCH
         IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
DECLARE @ErrorNumber INT = ERROR_NUMBER();
DECLARE @ErrorLine INT = ERROR_LINE();
SELECT  CAST(ERROR_NUMBER() AS NVARCHAR(1000));
THROW;
END CATCH
END

最新更新