我有一個很大的生成腳本。它有多個批次(GO
陳述)。第一行是BEGIN TRAN
錯誤回滾事務
如果在執行過程中發生任何錯誤,或者使用RAISERROR
提出自己,或者由SQL Server產生,我想要回滾事務。我希望腳本繼續執行直到最後,然後回滾,一旦發生任何錯誤,不會中止執行。
在腳本末尾檢查@@error <> 0
似乎不夠用,因爲如果腳本中的最後一條語句成功,@@ error將爲0,即使先前的語句失敗。
我最初不能聲明@rollback BIT
,因爲腳本被分割爲多個批次,所以變量超出了範圍。我知道RAISERROR
並不意味着我的交易將被回滾。
有關以SQL 2000兼容方式實現此操作的最佳方法的任何建議?
你沒收到錯誤:'提交事務請求有沒有相應的BEGIN TRANSACTION.'? –
不,我不......最後提交事務時提交事務 – Jeff