<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    海上月明

    editer by sun
    posts - 162, comments - 51, trackbacks - 0, articles - 8
       :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

    from:http://www.tkk7.com/pts/archive/2010/11/23/338825.html

    sqlserver和oracle中實現update關聯更新的語法不同,都可以通過inline view(內嵌視圖)
    來實現,總的來說sqlserver更簡單些. 測試例子如下:


    create table tmp_a
    (cpcode varchar2(10),
    sb_ym varchar2(6),
    flag char(1)
    );

    create table tmp_b
    (cpcode varchar2(10),
    sb_ym varchar2(6),
    flag char(1)
    );

    insert into tmp_a(cpcode,sb_ym,flag)values('3201910001','200406','e');
    insert into tmp_a(cpcode,sb_ym,flag)values('3201910002','200406','e');
    insert into tmp_b(cpcode,sb_ym,flag)values('3201910001','200406','r');
    insert into tmp_b(cpcode,sb_ym,flag)values('3201910002','200406','r');
    insert into tmp_b(cpcode,sb_ym,flag)values('3201910003','200406','r');
    insert into tmp_b(cpcode,sb_ym,flag)values('3201910004','200406','e');
    commit;

    在SQLSERVER中:

    update tmp_b set flag = b.flang from tmp_a a,tmp_b b 
    where a.cpcode =b.cpcode and a.sb_ym = b.sb_ym;


    在Oracle中:

    方法一:(效率低)
    update tmp_b a
    set flag = (select flag from tmp_a b
    where a.cpcode = b.cpcode and a.sb_ym = b.sb_ym ) 
    where exists 
    (select * from tmp_a c 
    where a.cpcode = c.cpcode and a.sb_ym = c.sb_ym);

    Statistics
    ----------------------------------------------------------
    8 recursive calls
    3 db block gets
    18 consistent gets
    0 physical reads
    0 redo size

    方法二:(效率高)
    alter table tmp_a add constraint p_tmp_a primary key (cpcode, sb_ym);

    update (select b.flag flagb,a.flag flaga 
    from tmp_a a,tmp_b b 
    where a.cpcode=b.cpcode 
    and a.sb_ym=b.sb_ym) 
    set flagb=flaga;

    Statistics
    ----------------------------------------------------------
    0 recursive calls
    3 db block gets
    7 consistent gets
    0 physical reads
    0 redo size


    注意:方法二中數據源表必須要加上主鍵,否則會報錯 
    ORA-01779: 無法修改與非鍵值保存表對應的列
    被修改的表則無需增加主鍵


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 二级毛片免费观看全程| 日韩av无码免费播放| 免费成人在线观看| 99久久免费国产精品热| 亚洲综合激情视频| 国产麻豆剧传媒精品国产免费 | 国产精品久久亚洲一区二区| 国产亚洲欧洲Aⅴ综合一区| 2020因为爱你带字幕免费观看全集| 亚洲AV无码专区在线观看成人| 国产亚洲精品无码拍拍拍色欲| 亚洲精品国产免费| 免费一级特黄特色大片| 91精品国产亚洲爽啪在线观看| 国产精品酒店视频免费看| 久久午夜夜伦鲁鲁片无码免费| 亚洲熟妇av午夜无码不卡| 亚洲综合无码精品一区二区三区| 又大又硬又爽又粗又快的视频免费| 亚洲国产精品无码久久九九大片 | 99re6在线视频精品免费| 亚洲综合色区中文字幕| 亚洲中文字幕第一页在线| 成人特黄a级毛片免费视频| 不卡视频免费在线观看| 亚洲人成色4444在线观看| 亚洲视频精品在线| 无码欧精品亚洲日韩一区夜夜嗨| 777爽死你无码免费看一二区| 一级a性色生活片久久无少妇一级婬片免费放 | 天天摸天天操免费播放小视频| 最近免费中文字幕MV在线视频3| 亚洲精品无码久久久久YW| 亚洲国产综合专区在线电影| 免费A级毛片无码A∨男男 | 亚洲欧洲日产国产综合网| 免费人成在线观看播放国产 | 亚洲精品无码永久中文字幕| 国产又长又粗又爽免费视频| 日韩亚洲国产高清免费视频| 免费视频成人手机在线观看网址|