2017-06-19 103 views
0

當我在SQL Server 2014的php中嘗試這個工作時,它現在可以工作,但現在用SQL Server 2008報告了以下錯誤: 關鍵字'END'附近的語法錯誤。 任何想法爲什麼?SQL Server 2008 BEGIN TRANSACTION with BEGIN TRY

BEGIN TRANSACTION 
    BEGIN TRY 
     INSERT ... 
     INSERT ... 
    COMMIT TRANSACTION 
    END TRY 
    BEGIN CATCH 
     ROLLBACK TRANSACTION 
    END CATCH 

INSERTS是正確的。它可以工作,如果我刪除TRY CATCH。

謝謝!

回答

1

你需要移動開始嘗試塊 下面內幕交易被修改,一個可以參考

BEGIN TRY 
BEGIN TRANSACTION 
    INSERT... 
    INSERT... 
COMMIT TRANSACTION 
END TRY 

BEGIN CATCH 
IF (@@TRANCOUNT > 0) 
BEGIN 
    ROLLBACK TRANSACTION 
    PRINT 'Error detected, all changes reversed' 
END 
END CATCH 
相關問題