我正在寫一個存儲過程,其中我使用try catch塊。有沒有可能在捕獲異常時手動引發系統異常?
現在我在表中有一個獨特的列。當我嘗試插入重複的值,它拋出,出現異常的異常沒有2627
我想這是這樣
來完成,如果(存在(SELECT * FROM tblABC其中COL1 =「值」)= TRUE) RAISEERROR(2627) - 提高將拋出,如果我會用插入查詢插入重複值系統錯誤
編輯:
我米使用事務它得到的處理異常因此導致遞增回滾@@身份值得到前在之前的查詢中發生了異常b4發生了異常。
我想檢查b4實際插入時可能發生的所有這種異常。爲了做到這一點,我會檢查異常,可能會使用帶有if else
的select語句手動引發錯誤。在這裏,我將能夠趕上唯一鍵衝突,但不會發生的異常,所以我會故意在這裏拋出異常,但該異常,我想應該是一個系統異常即錯誤2627
和方法會更好,使用 插入查詢或檢查重複 值插入前使用選擇 查詢?
是有可能好歹能爲整個系統 EXCEPTION開捕EXCEPTION 手動即投擲SAME異常SQL會捻線
@Remus Plz回答我的編輯。因爲沒有獲得關於我的問題的描述性信息 – 2010-03-15 21:30:42
編輯完成後,我的帖子不需要更新。一切都站着。 – 2010-03-15 21:38:40
T-SQL的TRY/CATCH中沒有重新拋出語義。你必須拋出一個*新的*自定義類型的異常(即50000以上的錯誤代碼)。這很麻煩,但這是T-SQL異常處理的最新技術。 – 2010-03-15 21:47:37