国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

詳解SQL Server 2008中的MERGE語句

數據庫 SQL Server
本文將重點討論的是SQL Server 2008中的MERGE語句,其主要功能是根據源表對目標表執行插入、更新或刪除操作。

SQL Server 2008中的MERGE語句能做很多事情,它的功能是根據源表對目標表執行插入、更新或刪除操作。最典型的應用就是進行兩個表的同步。

下面通過一個簡單示例來演示MERGE語句的使用方法,假設數據庫中有兩個表Product及ProductNew,我們的任務是將Product的數據同步到ProductNew(當然同步可能是每天通過Job來自動完成的,在此我們只關注MERGE的使用)。

以下SQL創建示例表

--源表

  1. CREATE TABLE Product   
  2. (   
  3.     ProductID    varchar(7) NOT NULL PRIMARY KEY,   
  4.     ProductName varchar(100) NOT NULL,   
  5.     Price        decimal(13,2) DEFAULT 0   
  6. );  
  7.  
  8. INSERT INTO Product   
  9.     Values   
  10.     ('4100037','優盤',50),   
  11.     ('4100038','鼠標',30); 

--目標表

  1. CREATE TABLE ProductNew   
  2. (   
  3.     ProductID    varchar(7) NOT NULL PRIMARY KEY,   
  4.     ProductName varchar(100) NOT NULL,   
  5.     Price        decimal(13,2) DEFAULT 0   
  6. ); 

下面再來關注MERGE語句的基本語法:

 

  1. MERGE 目標表  
  2. USING 源表  
  3. ON 匹配條件  
  4. WHEN MATCHED THEN 
  5. 語句  
  6. WHEN NOT MATCHED THEN 
  7. 語句; 

 

以上是MERGE的最最基本的語法,語句執行時根據匹配條件的結果,如果在目標表中找到匹配記錄則執行WHEN MATCHED THEN后面的語句,如果沒有找到匹配記錄則執行WHEN NOT MATCHED THEN后面的語句。注意源表可以是表,也可以是一個子查詢語句。

格外強調一點,MERGE語句***的分號是不能省略的!

回到我們的示例,顯然Product與ProductNew表的MERGE匹配條件為主鍵ProductID字段,初始情況下,ProductNew表為空,此時肯定執行的是WHEN NOT MATCHED THEN后的語句,我們先只考慮源表遞增的情況,MERGE語句如下:

  1. MERGE ProductNew AS d   
  2. USING   
  3.     Product   
  4. AS s   
  5. ON s.ProductID = d.ProductId   
  6.     WHEN NOT MATCHED THEN   
  7.  INSERT( ProductID,ProductName,Price)   
  8.   VALUES(s.ProductID,s.ProductName,s.Price); 

運行后2行受影響,我們已經將Product表的數據同步到了ProductNew表。

現在,我們更新Product表4100037產品的價格,將其修改為55:

  1. UPDATE Product SET Price=55 WHERE ProductID='4100037'

我們也希望每天同步的時候應該將更新后的價格同步到ProductNew表,顯然此時在MERGE語句中應該添加WHEN MATCHED THEN 語句,該語句來更新ProductNew表的價格,添加匹配更新后的MERGE語句:

  1. MERGE ProductNew AS d   
  2. USING   
  3.     Product   
  4. AS s   
  5. ON s.ProductID = d.ProductId   
  6. WHEN NOT MATCHED THEN   
  7.     INSERT( ProductID,ProductName,Price)   
  8.         VALUES(s.ProductID,s.ProductName,s.Price)   
  9. WHEN MATCHED THEN   
  10.     UPDATE SET d.ProductName = s.ProductName, d.Price = s.Price; 

執行后2行受影響,為什么是兩行呢?因為我們的匹配條件只是按ProductID來關聯的,這樣匹配出來的記錄為2行。另外,我們的UPDATE語句里面沒有更新ProductID字段,因為這是完全沒必要的(如果修改了ProductID字段會直接走到NOT MATCHED)。

現在做個破壞,我們將410037產品刪除掉:

  1. DELETE Product WHERE ProductID='4100037'

明顯,上面給出的MERGE語句無法同步這種情況,再次回到MERGE語句的定義,對MERGE的WHEN NOT MATCHED THEN語句稍作擴展:

  1. WHEN NOT MATCHED BY TARGET  

表示目標表不匹配,BY TARGET是默認的,所以上面我們直接使用WHEN NOT MATCHED THEN

  1. WHEN NOT MATCHED BY SOURCE  

表示源表不匹配,即目標表中存在,源表中不存在的情況。

OK,現在我們要完成源表DELETE后,目標表的同步動作,MERGE語句如下:

  1. MERGE ProductNew AS d   
  2. USING   
  3.     Product   
  4. AS s   
  5. ON s.ProductID = d.ProductId   
  6. WHEN NOT MATCHED BY TARGET THEN   
  7.     INSERT( ProductID,ProductName,Price)   
  8.         VALUES(s.ProductID,s.ProductName,s.Price)   
  9. WHEN NOT MATCHED BY SOURCE THEN   
  10.     DELETE   
  11. WHEN MATCHED THEN   
  12. UPDATE SET d.ProductName = s.ProductName, d.Price = s.Price; 

嗯,上面已經使用到MERGE語句中的INSERT、UPDATE、DELETE語句,這足夠完成大多數的同步功能了。當然,MERGE語句還有很多的選項,在此不做詳述,請參考MSDN

原文標題:SQL Server 2008中的MERGE(不僅僅是合并)

鏈接:http://www.cnblogs.com/xfrog/archive/2010/10/13/1850602.html

【編輯推薦】

  1. SQL Server 2000刪除實戰演習
  2. SQL Server存儲過程的命名標準如何進行?
  3. 卸載SQL Server 2005組件的正確順序
  4. 對SQL Server字符串數據類型的具體描述
  5. SQL Server數據類型的種類與應用
責任編輯:彭凡 來源: 博客園
相關推薦

2011-04-02 14:06:46

SQL Server MERGE

2011-08-19 10:40:27

SQL Server Merge命令

2010-07-19 12:47:04

SQL Server

2011-08-19 11:00:54

SQL Server WaitFor命令

2010-10-11 09:05:40

SQL Server

2011-08-19 11:26:41

SQL Server 主密鑰

2009-04-16 18:15:19

動作審核審核活動SQL Server

2009-04-16 17:44:31

2011-03-15 10:22:42

SQL Server 聯機事務處理

2009-03-17 13:25:13

查詢遷移SQL Server

2010-09-07 11:53:00

SQL語句

2011-09-01 15:24:22

SQL Server 存儲過程調試

2009-04-27 14:48:44

2011-08-01 10:09:57

SSAS數據庫

2010-12-06 09:26:23

SQL Server

2010-11-12 13:08:36

動態sql語句

2013-05-08 10:01:55

SQL Server 數據備份備份與還原

2010-05-13 10:00:10

SQL Server

2009-04-08 09:29:34

SQL Server新特性Resource Go

2012-04-16 09:55:38

SQL Server
點贊
收藏

51CTO技術棧公眾號

青青草综合在线| 日日摸天天爽天天爽视频| 国产精品va在线播放| 欧美巨猛xxxx猛交黑人97人| 亚洲图片都市激情| 欧美人xxx| 六月丁香激情网| 国产精品电影| 日韩一区精品视频| 在线成人直播| 精品久久久久久中文字幕| 97在线看福利| 羞羞免费视频| 欧美男男freegayvideosroom| 成年人网站91| 日韩一区二区久久久| 欧美成人精品免费| av在线亚洲一区| 亚洲国产高清在线观看视频| 久久亚洲精品成人| 黄色片视频在线播放| 国产日韩欧美三级| 91精品国产综合久久香蕉麻豆| 国产综合欧美在线看| 黄色av免费在线| 一本大道久久a久久精二百| 欧美三级韩国三级日本三斤| 国产伦精品一区二区三区在线| 超碰国产在线观看| 久久一区二区三区超碰国产精品| 亚洲国产精品va在线看黑人 | 国产精品秘入口| 亚洲精品888| 日韩精品在线一区| 草草视频在线免费观看| 久久99精品网久久| 国内精品免费午夜毛片| 在线观看免费毛片| 偷拍欧美精品| 亚洲精品一级| 欧美韩国亚洲| jizz性欧美10| 亚洲精品国产精品国自产观看| 久久亚洲精品小早川怜子66| 91性高湖久久久久久久久_久久99| 丁香综合av| 精品免费视频一区二区| 日韩理论在线观看| 91亚洲人成网污www| 嫩草国产精品入口| 欧美蜜桃一区二区三区| 一区2区3区在线看| 亚洲黄色av女优在线观看| 亚洲香蕉成人av网站在线观看| 欧美大片欧美激情性色a∨久久| 91美女在线免费观看| 午夜天堂精品久久久久| 国产精品久久一卡二卡| 日韩欧美国产综合在线一区二区三区| 午夜视频在线| 国产区在线观看成人精品| 国产精品盗摄久久久| 久久久成人av毛片免费观看| 午夜宅男久久久| 国产九色91| 欧美人体做爰大胆视频| 97在线免费公开视频| 奇米777国产一区国产二区| 国产精品久久久久久久久久久久久| 男女激情视频一区| 久久久欧美一区二区| 成全电影大全在线观看| 欧美亚洲大陆| 精品无码久久久久国产| 欧美国产亚洲一区| 欧美日本一区| 色天下一区二区三区| 免费的国产精品| 亚洲精品欧美日韩专区| 91九色视频导航| 91中文在线| 国产在线不卡一区二区三区| 成年人网站国产| 1区2区3区在线视频| 国产一区二区在线视频| 亚洲欧美另类久久久精品2019| 亚洲精品一二三四区| wwwwxxxx日韩| 涩涩视频在线播放| 99国产精品99久久久久久粉嫩| 免费日本视频一区| 成人免费看片网址| 精品一区二区日本| 国产精品一区二区99| 麻豆精品蜜桃视频网站| 亚洲人av在线影院| 一区二区三区三区在线| 国产99久久久国产精品潘金网站| 欧美性色xo影院| 91国产美女在线观看| 制服影音先锋| 欧美日韩色综合| 青青草国产精品97视觉盛宴| 亚洲国产一区二区精品视频| 精品亚洲一区二区三区在线观看| 国产男女猛烈无遮挡91| 免费视频成人| 欧洲一区二区av| 最新中文字幕2018| 精品一区二区日韩| av综合电影网站| 久久精品人人做人人爽人人| 亚洲一区二区黄色| 黄色大片中文字幕| 午夜亚洲视频| 天天爽夜夜爽一区二区三区| 99九九99九九九视频精品| 日韩欧美一区二区在线观看| 欧洲美女日日| 日本韩国在线不卡| 高清一区二区三区av| 粉嫩av四季av绯色av第一区| 成人a区在线观看| 老司机午夜在线视频| 日韩美女免费线视频| 国产一区二区伦理片| 欧美巨乳在线| 亚洲.国产.中文慕字在线| 国产三级香港三韩国三级| 91色porny在线视频| 国产美女视频免费| 自产国语精品视频| 亚洲熟妇av一区二区三区| 精品人伦一区二区色婷婷| 91视频一区| 日本超碰在线观看| 亚洲欧美日韩一区在线| 超碰97国产精品人人cao| 国产精品一区二区性色av| 国产精品一区二区你懂的| 欧美一区二区三区精美影视 | 国产精品一区二区久久精品爱涩| 四虎影院在线播放| 日本福利一区二区| 青青久草在线| 色香蕉久久蜜桃| 免费看日产一区二区三区| 亚洲第一精品区| 欧美日韩高清不卡| 欧美暴力喷水在线| 在线视频福利| 91亚洲国产成人精品性色| 亚洲福利一区二区| 天堂av在线资源| 日本91av在线播放| 欧美在线国产| 日本天堂在线| 亚洲a在线播放| 一本色道久久加勒比精品| 欧美91视频| 午夜视频在线免费观看| 国产日韩在线一区二区三区| 欧美日韩在线三级| 亚洲精品欧美| 中文字幕有码在线观看| 日本亚洲自拍| 亚洲第一级黄色片| 国产中文一区二区三区| 韩日一区二区| 午夜精品久久久内射近拍高清| 色999日韩欧美国产| 亚洲精品国产动漫| 久久综合九色99| 国产成人免费视| 免费h片在线| 欧美裸体bbwbbwbbw| 成人一区二区| 免费观看黄色的网站| 日韩成人在线播放| 精品国产乱码久久久久久果冻传媒| 免费羞羞视频| 日韩电影免费观看在线观看| 精品午夜久久福利影院| 中文字幕在线看片| 国产精品久久色| 国产精品对白| 在线观看av影片| 亚洲美女性生活视频| 大桥未久av一区二区三区中文| 久久9精品区-无套内射无码| 久久久免费精品视频| 亚洲欧美色一区| 中文在线日韩| 羞羞视频在线免费国产| 久久久久久久久久久免费| 夜夜嗨一区二区三区| 欧产日产国产精品视频| 免费看污黄网站| av色综合网| 亚洲人成在线观看一区二区|