多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > sybase > sybase事務中調用含有臨時表的存儲過程的問題

sybase事務中調用含有臨時表的存儲過程的問題

來源:程序員人生   發布時間:2014-01-02 23:28:02 閱讀次數:4304次
原來調用存儲過程的地方都沒有使用事務,當然里面包括多個表的更新操作,使用都很正常。后來我給加上了jdbc事務,代碼如下:
引用:
TransactionStatus status = super.beginTransaction();
                try {
                        map = getFtglUtils().cancelFtrw(getPageAjlb(),
                                        key.getId1().intValue(), key.getId2().intValue(), qxyy,
                                        iState);
                        super.getTransactionManager().commit(status);
                } catch (Exception e) {
                        super.getTransactionManager().rollback(status);
                        throw new SystemException(e);
                }
加上事務之后就發現存儲過程沒有完全執行,里面的update語句都沒有執行,但是最后的select還能返回結果集,調用后臺也不報錯……百思不得其解。后來湊巧把存儲過程中創建臨時表的如下語句:
引用:
-- 創建臨時表
          create table #tmpBAGL
          (
              BH int,                    -- 編號
              RWXH smallint              -- 任務序號
          ) 
移到了使用這個臨時表的if else里面,因為只有在一定的條件下才需要創建臨時表。再試了一下調用存儲過程,發現一切正常了!這一次存儲過程沒有執行創建臨時表,就正常了……遂上網搜到一個如下的描述:
引用:
select into可以在事務中使用,但是前提條件是這個事務只有select into一條語句。
SELECT INTO command not allowed within multi-statement transaction. 
注意是multi-statement transaction
大家都知道,select into #tabel的最大優勢是速度快,但這個速度快是用不記錄日志來實現的。
而使用事務的目的就是要么事務中的所有操作全部執行,要么所有操作全部回滾。
這是靠日志中記錄的操作來保證的。
如果select into可以在多語句的事務中使用,但是它本身又是不計日志的,也就是不能回滾的。
這就和事務的定義矛盾了。
因此,select into不能在多語句的事務中使用。
但也不是說我們不能使用select into這個好東東,set chained off,使用非鏈式事務或者把select into
放在單獨一個事務中運行就可以了。
還有一個在多語句事務中被禁止的,而在應用中會常需要的命令是truncate table。
原因和解決方法也如上所說。
把存儲過程還原成最開始那樣,在創建臨時表之前加上set chained off,再次運行問題解決
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲 中文 欧美 日韩 在线人 | 成人免费视频77777 | 国产久视频观看 | 国产精品久久久久影院免费 | 精品久久久久久中文字幕女 | 亚洲免费视频观看 | 性欧美videos喷水 | 欧美成人性色大片在线观看 | 秋霞一级成人欧美理论 | 666精品国产精品亚洲 | 最新中文字幕日本 | 97精品国产福利一区二区三区 | 国内精品麻豆 | 亚洲成av人片在线观看无码 | a级艳片武则天 | 亚洲乱码一区二区三区国产精品 | 日本wwwxxxx| 精品视频久久久久 | 久久艹精品 | 中文字幕在线播放第一页 | 国产精品video | 色老成人精品视频在线观看 | 亚洲精品一区二区三区婷婷月 | 一本久久精品一区二区 | 国产成人免费片在线视频观看 | 国产18视频| 一级a毛片免费观看久久精品 | 国产亚洲3p一区二区三区 | 激情欧美成人久久综合小说 | haose16在线永久免费 | 亚洲精品不卡在线 | 亚洲精品亚洲人成在线播放 | 国精品日韩欧美一区二区三区 | 日韩 欧美 亚洲 | 91久久偷偷做嫩草影院免费看 | 男女男精品视频在线观看 | 国内交换一区二区三区 | 在线视频播放网站 | 亚洲精品一区二区三区在线播放 | 午夜羞羞视频在线观看 | 在线视频一区二区三区四区 |