<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: 無法修改與非鍵值保存表對應的列
    被修改的表則無需增加主鍵


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲国产精品成人午夜在线观看| 亚洲精品美女在线观看| 亚洲精品无码国产片| 毛片免费视频观看| 久久亚洲精品国产亚洲老地址| 国产一卡2卡3卡4卡无卡免费视频| 亚洲码在线中文在线观看| 国产1000部成人免费视频| 国产精品亚洲精品青青青| 最近最新中文字幕完整版免费高清| 亚洲午夜福利在线视频| 啦啦啦在线免费视频| 精品亚洲成a人在线观看| 亚洲美女高清一区二区三区 | 亚洲人成网站色在线入口| caoporm超免费公开视频| 亚洲精品无码久久久久sm| 午夜影院免费观看| 亚洲资源最新版在线观看| 国产又大又黑又粗免费视频| 成人免费夜片在线观看| 亚洲精品成人网站在线观看 | 亚洲第一页日韩专区| 香蕉免费在线视频| 亚洲国产精品成人精品软件 | 亚洲色无码一区二区三区| 亚洲精品免费观看| 亚洲中文字幕乱码一区| 亚洲AV无码不卡在线观看下载| 免费无码又爽又刺激一高潮| 亚洲精品亚洲人成在线观看麻豆 | 亚洲日产无码中文字幕| 182tv免费视视频线路一二三| 亚洲日韩精品无码专区| 亚洲中文字幕在线观看| 黄色网址免费观看| 四虎成人精品国产永久免费无码| 亚洲AV无码AV男人的天堂| 日韩免费高清视频网站| 久久精品视频免费| 亚洲精品宾馆在线精品酒店|