北京北大青鳥解析:SQL Server 2008中的新語句:MERGE

      北京北大青鳥ACCP學(xué)術(shù)部提供:Microsoft SQL Server 2008將包含用于合并兩個(gè)行集(rowset)數(shù)據(jù)的新句法。根據(jù)一個(gè)源數(shù)據(jù)表對(duì)另一個(gè)數(shù)據(jù)表進(jìn)行確定性的插入、更新和刪除這樣復(fù)雜的操作,運(yùn)用新的MERGE語句,開發(fā)者只需使用一條命令就可以完成。

      在對(duì)兩個(gè)表進(jìn)行信息同步時(shí),有三步操作必須要進(jìn)行。首先我們要處理任何需要插入目標(biāo)數(shù)據(jù)表的新行。其次是處理需要更新的已存在的行。最后要?jiǎng)h除不再使用的舊行。這個(gè)過程中需要維護(hù)大量重復(fù)的邏輯,并可能導(dǎo)致微妙的錯(cuò)誤。

      值得我們大家主意的是,這個(gè)語句將上述的多個(gè)操作步驟合并成單一語句。以下是示例:

      以下是引用的片斷:
      merge [target] t
      using [source] s on t.id = s.id
      when matched then update t.name = s.name, t.age = s.age -- use "rowset1"
      when not matched then insert values(id,name,age) -- use "rowset2"
      when source not matched then delete; -- use "rowset3"

      大家可以看到,具體的操作是根據(jù)后面的聯(lián)合(join)的解析結(jié)果來確定的。在這個(gè)示例中,假如目標(biāo)和源數(shù)據(jù)表有匹配的行,就實(shí)行更新操作。如果沒有,就實(shí)行插入或者刪除操作來使目標(biāo)數(shù)據(jù)表和源數(shù)據(jù)表保持一致。

      這個(gè)新句法的一個(gè)精妙之處是它在處理更新時(shí)的確定性。在使用標(biāo)準(zhǔn)的UPDATE句法和聯(lián)合時(shí),可能有超過一個(gè)源行跟目標(biāo)行匹配。在此情況下,無法預(yù)料更新操作會(huì)采用哪個(gè)源行的數(shù)據(jù)。

      而我們?cè)谑褂肕ERGE句法時(shí),假如存在多處匹配,它會(huì)拋出一個(gè)錯(cuò)誤。這就需要開發(fā)者主意,要達(dá)到預(yù)想的目標(biāo),當(dāng)前的聯(lián)合條件還不夠十分明確。

      北大青鳥網(wǎng)上報(bào)名
      北大青鳥招生簡(jiǎn)章
      主站蜘蛛池模板: 日韩亚洲一区二区三区| 国产AV一区二区三区传媒| 国产一区二区三区91| 色一乱一伦一图一区二区精品| 海角国精产品一区一区三区糖心| 中文字幕一区二区三区免费视频| 亚洲AV无码一区二区三区久久精品| 国产内射在线激情一区| 国产一区风间由美在线观看| 午夜影院一区二区| 无码精品一区二区三区在线| 精品一区二区三区免费观看| 国产成人av一区二区三区在线| 97久久精品无码一区二区天美 | 中文字幕一区日韩精品| 人妻无码视频一区二区三区| 国产激情з∠视频一区二区| 国产在线不卡一区二区三区| 福利一区二区在线| 四虎永久在线精品免费一区二区| 免费高清av一区二区三区| 亚洲欧洲专线一区| 亚洲国产欧美一区二区三区| 精品香蕉一区二区三区| 高清精品一区二区三区一区| 韩国福利影视一区二区三区| 亚洲国产一区在线观看| 久久久久人妻精品一区| 91视频一区二区三区| 亚洲一区二区观看播放| 日韩中文字幕精品免费一区| 最新欧美精品一区二区三区| 午夜AV内射一区二区三区红桃视| 伊人久久大香线蕉AV一区二区| 亚洲一区精品视频在线| 加勒比无码一区二区三区| 国产一区二区视频免费| 在线观看免费视频一区| 日韩人妻无码一区二区三区99| 亚洲视频一区二区在线观看| 亚洲AV香蕉一区区二区三区|