cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發(fā)展
          數(shù)據(jù)加載中……

          數(shù)據(jù)庫觸發(fā)器Trigger或者存儲過程Procedure的調(diào)試技巧

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

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

          raiserror ('test raiserror 2---'101with nowait
          程序中調(diào)用這個procedure或者觸發(fā)這個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以上的數(shù)字才會強迫它工作。

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

          f

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

          主站蜘蛛池模板: 庆元县| 澄城县| 蓝田县| 象州县| 安化县| 曲阜市| 昭苏县| 永丰县| 咸阳市| 乌鲁木齐市| 广饶县| 广昌县| 靖安县| 祁东县| 聂拉木县| 韩城市| 青海省| 峡江县| 闻喜县| 古交市| 枣强县| 秦皇岛市| 麟游县| 垦利县| 涿鹿县| 玛沁县| 南召县| 三江| 洛川县| 红原县| 巴彦县| 台南县| 米脂县| 长海县| 枣阳市| 邻水| 洛南县| 锡林浩特市| 凭祥市| 湟中县| 高台县|