我在一個非常奇怪的行爲SQL Server數據庫觸發器,這些都是陌生的說明:Stringe超時觸發錯誤
...
EXEC [ope].[spMissionDepartment] @AircraftId = @vnAircraftId
RAISERROR('test error', 16, 1)
END TRY
BEGIN CATCH
SELECT @ErrorMessage = ERROR_MESSAGE()
ROLLBACK TRANSACTION
RAISERROR(@ErrorMessage, 16, 1) -- strange line
END CATCH
奇怪的行爲是這樣的:
如果我刪除怪行比我在網頁中收到的錯誤
TIMEOUT EXPIRED。在完成操作或服務器之前所提供的超時期限不予迴應。
否則,如果我不刪除行奇怪,我收到錯誤
測試誤差
有沒有其他觸發器,所以EXEC應該是最後執行的語句,我怎麼可能只收到超時而沒有Raiserror?
嘗試在奇怪的行'RAISERROR(@ErrorMessage,9,1)' –
但是,如果我使用9作爲嚴重性它將繼續,所以就像沒有_Raiserror_,奇怪的行爲是, _Raiserror_應該是最後執行的語句,爲什麼在它之後有一個超時? – davidinho
也許這可以幫助你http://sqlhints.com/2013/06/30/differences-between-raiserror-and-throw-in-sql-server/ – GuidoG