cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展

          導航

          我參與的團隊

          隨筆分類

          相冊

          積分與排名

          • 積分 - 672829
          • 排名 - 70

          最新評論

          閱讀排行榜

          數據庫觸發器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 閱讀(1425) 評論(0)  編輯  收藏 所屬分類: DBMS

          主站蜘蛛池模板: 祁阳县| 丰顺县| 凤阳县| 双流县| 威海市| 甘孜| 仁布县| 黑河市| 昌邑市| 牟定县| 宝兴县| 德江县| 竹溪县| 罗定市| 灵宝市| 五河县| 浦江县| 溧阳市| 洛南县| 凯里市| 凤阳县| 达尔| 中方县| 客服| 沙雅县| 德庆县| 剑阁县| 成安县| 英德市| 青海省| 江门市| 察雅县| 阿鲁科尔沁旗| 开原市| 柘城县| 象州县| 惠州市| 绵阳市| 武冈市| 宜州市| 灵山县|