日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解讀SQL Server2008的新語句MERGE_Mssql數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:SQL Server 2005深層工具和運(yùn)行時(shí)間集
本文分析SQL Server 2005深層工具和運(yùn)行時(shí)間集。 簡化的開發(fā)和調(diào)試 Microsoft Visual Studio與.NET Framework的緊密集成,使數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用系統(tǒng)開發(fā)和調(diào)試更加順暢. 開發(fā)人員可以建立數(shù)據(jù)庫

SQL Server 2008將包含用于合并兩個(gè)行集(rowset)數(shù)據(jù)的新句法。根據(jù)一個(gè)源數(shù)據(jù)表對另一個(gè)數(shù)據(jù)表進(jìn)行確定性的插入、更新和刪除這樣復(fù)雜的操作,運(yùn)用新的MERGE語句,開發(fā)者用一條命令就可以完成。

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

Bob Beauchemin討論了MERGE語句,這個(gè)語句將上述的多個(gè)操作步驟合并成單一語句。他給出了如下的例子:

以下為引用的內(nèi)容:
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ù)。

而當(dāng)使用MERGE句法時(shí),如果存在多處匹配,它會(huì)拋出一個(gè)錯(cuò)誤。這就提醒了開發(fā)者,要達(dá)到預(yù)想的目標(biāo),當(dāng)前的聯(lián)合條件還不夠明確。

本文收集整理自互聯(lián)網(wǎng),若您是原文作者,請來信更改作者及出處Post#vip.qq.com(把#改為@)

分享:探討SQL Server 2005的評價(jià)函數(shù)
 一、 簡介   在2005年11月份,微軟發(fā)行了三種新產(chǎn)品系列:Visual Studio 2005,SQL Server 2005和.NET框架2.0(它包括ASP.NET 2.0)。SQL Server 2005是微軟自從其上一個(gè)主要發(fā)行版本S

來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時(shí)間:2008-08-22
相關(guān)Mssql數(shù)據(jù)庫教程