cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          數據庫觸發器Trigger或者存儲過程Procedure的調試技巧

          use Print
          PRINT 'testing----' WAITFOR DELAY '00:00:05';
          程序中調用這個procedure或者觸發這個trigger,java控制臺根本沒有這個輸出;
          很生氣,后果很嚴重的讓時間飛逝。

          網上眾多大拿推薦使用Raiserror,于是
          raiserror ('test raiserror 1---'10-1with log

          raiserror ('test raiserror 2---'101with nowait
          程序中調用這個procedure或者觸發這個trigger,java控制臺根本沒有這個輸出;
          很生氣,后果很嚴重的讓時間飛逝。

          于是,很無語胡亂的測試:
          raiserror ('test raiserror 3---'16,-1with log;
          raiserror ('test raiserror 4---'16,-1with nowait;
          任何一條都輸出并且讓程序回滾,很好很好

          我得找到這個原因:
          翻翻MSDN吧:
           A RAISERROR severity of 11 to 19 executed in the TRY block of a TRY…CATCH construct causes control to transfer to the associated CATCH block. Specify a severity of 10 or lower to return messages using RAISERROR without invoking a CATCH block. PRINT does not transfer control to a CATCH block.
          好吧,10以上的數字才會強迫它工作。

          但是呢,為了不拋錯誤,我們可以做以下2種方案:
          方案一:
          建立tmp表,利用insert保存你要的結果
          方案二:
          不知道try catch是不是能幫上忙,就留在下回測試吧。

          f

          posted on 2013-04-10 20:05 crazycy 閱讀(1423) 評論(0)  編輯  收藏 所屬分類: DBMS

          主站蜘蛛池模板: 华坪县| 榆社县| 得荣县| 大同县| 平塘县| 酉阳| 河北省| 朔州市| 合江县| 江油市| 缙云县| 五莲县| 申扎县| 全椒县| 浦县| 确山县| 桑植县| 扬州市| 泰州市| 容城县| 麟游县| 沙坪坝区| 南安市| 崇信县| 綦江县| 漠河县| 天镇县| 新乡市| 汾阳市| 双柏县| 福建省| 宁远县| 和田县| 承德县| 鹤壁市| 洛宁县| 凭祥市| 青川县| 盐津县| 和政县| 太白县|