亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQLServer2008的實用小道具 merger使用介紹

2024-08-31 01:00:49
字體:
來源:轉載
供稿:網友
A. 使用 MERGE 在單個語句中對表執行 UPDATE 和 DELETE 操作
  下面的示例使用 MERGE 根據 SalesOrderDetail 表中已處理的訂單,每天更新 AdventureWorks 示例數據庫中的 ProductInventory 表。通過減去每天對 SalesOrderDetail 表中的每種產品所下的訂單數,更新 ProductInventory 表的 Quantity 列。如果某種產品的訂單數導致該產品的庫存量下降到 0 或更少,則會從 ProductInventory 表中刪除該產品對應的行。
  B. 借助派生的源表,使用 MERGE 對目標表執行 UPDATE 和 INSERT 操作
  下面的示例使用 MERGE 以更新或插入行的方式來修改 SalesReason 表。當源表中的 NewName 值與目標表 (SalesReason) 的 Name 列中的值匹配時,就會更新此目標表中的 ReasonType 列。當 NewName 的值不匹配時,就會將源行插入到目標表中。此源表是一個派生表,它使用 Transact-SQL 行構造函數功能指定源表的多個行。有關在派生表中使用行構造函數的詳細信息,請參閱 FROM (Transact-SQL)。

  C. 將 MERGE 語句的執行結果插入到另一個表中
  下例捕獲從 MERGE 語句的 OUTPUT 子句返回的數據,并將該數據插入另一個表。MERGE 語句根據在 SalesOrderDetail 表中處理的訂單,更新 ProductInventory 表的 Quantity 列。本示例捕獲已更新的行,并將這些行插入用于跟蹤庫存變化的另一個表中

復制代碼 代碼如下:


USE AdventureWorks;
GO
IF OBJECT_ID (N'Production.usp_UpdateInventory', N'P')
IS NOT NULL DROP PROCEDURE Production.usp_UpdateInventory;
GO
CREATE PROCEDURE Production.usp_UpdateInventory
@OrderDate datetime
AS
MERGE Production.ProductInventory AS target
USING (SELECT ProductID, SUM(OrderQty) FROM Sales.SalesOrderDetail AS sod
JOIN Sales.SalesOrderHeader AS soh
ON sod.SalesOrderID = soh.SalesOrderID
AND soh.OrderDate = @OrderDate
GROUP BY ProductID) AS source (ProductID, OrderQty)
ON (target.ProductID = source.ProductID)
WHEN MATCHED AND target.Quantity - source.OrderQty <= 0
THEN DELETE
WHEN MATCHED
THEN UPDATE SET target.Quantity = target.Quantity - source.OrderQty,
target.ModifiedDate = GETDATE()
OUTPUT $action, Inserted.ProductID, Inserted.Quantity, Inserted.ModifiedDate, Deleted.ProductID,
Deleted.Quantity, Deleted.ModifiedDate;
GO
EXECUTE Production.usp_UpdateInventory '20030501'


復制代碼 代碼如下:


USE AdventureWorks;
GO
MERGE INTO Sales.SalesReason AS Target
USING (VALUES ('Recommendation','Other'), ('Review', 'Marketing'), ('Internet', 'Promotion'))
AS Source (NewName, NewReasonType)
ON Target.Name = Source.NewName
WHEN MATCHED THEN
UPDATE SET ReasonType = Source.NewReasonType
WHEN NOT MATCHED BY TARGET THEN
INSERT (Name, ReasonType) VALUES (NewName, NewReasonType)
OUTPUT $action, inserted.*, deleted.*;


復制代碼 代碼如下:


USE AdventureWorks;
GO
MERGE INTO Sales.SalesReason AS Target
USING (VALUES ('Recommendation','Other'), ('Review', 'Marketing'), ('Internet', 'Promotion'))
AS Source (NewName, NewReasonType)
ON Target.Name = Source.NewName
WHEN MATCHED THEN
UPDATE SET ReasonType = Source.NewReasonType
WHEN NOT MATCHED BY TARGET THEN
INSERT (Name, ReasonType) VALUES (NewName, NewReasonType)
OUTPUT $action, inserted.*, deleted.*;


復制代碼 代碼如下:


USE AdventureWorks;
GO
CREATE TABLE Production.UpdatedInventory
(ProductID INT NOT NULL, LocationID int, NewQty int, PreviousQty int,
CONSTRAINT PK_Inventory PRIMARY KEY CLUSTERED (ProductID, LocationID));
GO
INSERT INTO Production.UpdatedInventory
SELECT ProductID, LocationID, NewQty, PreviousQty
FROM
( MERGE Production.ProductInventory AS pi
USING (SELECT ProductID, SUM(OrderQty)
FROM Sales.SalesOrderDetail AS sod
JOIN Sales.SalesOrderHeader AS soh
ON sod.SalesOrderID = soh.SalesOrderID
AND soh.OrderDate BETWEEN '20030701' AND '20030731'
GROUP BY ProductID) AS src (ProductID, OrderQty)
ON pi.ProductID = src.ProductID
WHEN MATCHED AND pi.Quantity - src.OrderQty >= 0
THEN UPDATE SET pi.Quantity = pi.Quantity - src.OrderQty
WHEN MATCHED AND pi.Quantity - src.OrderQty <= 0
THEN DELETE
OUTPUT $action, Inserted.ProductID, Inserted.LocationID, Inserted.Quantity AS NewQty, Deleted.Quantity AS PreviousQty)
AS Changes (Action, ProductID, LocationID, NewQty, PreviousQty) WHERE Action = 'UPDATE';
GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美另类高清videos| 日本人成精品视频在线| 亚洲人成在线观| 欧美高清videos高潮hd| 日韩美女av在线免费观看| 国产精品美乳一区二区免费| 狠狠躁18三区二区一区| 国产精品久久久久久av| 俺也去精品视频在线观看| 欧美美女15p| 日本欧美在线视频| 久久亚洲影音av资源网| 97视频免费观看| 日韩欧美国产免费播放| 久久五月天色综合| 中文字幕久久久| 亚洲欧美国产va在线影院| 欧美一区二区三区……| 成人免费视频在线观看超级碰| 午夜精品一区二区三区在线视频| 一区二区亚洲精品国产| 国产精品www网站| 日韩亚洲在线观看| 亚洲一区二区自拍| 美女扒开尿口让男人操亚洲视频网站| 成人国产在线视频| 国产精品劲爆视频| 亚洲天堂视频在线观看| 国产69精品久久久久9| 亚洲第一视频网站| 国产精品揄拍一区二区| 久久久99免费视频| 亚洲第一综合天堂另类专| 亚洲r级在线观看| 视频在线一区二区| 亚洲美腿欧美激情另类| 国产性猛交xxxx免费看久久| 国产精品日韩欧美综合| 久久久久久久激情视频| 最近2019年中文视频免费在线观看| 成人av在线亚洲| 成人精品视频在线| 久久天天躁夜夜躁狠狠躁2022| 欧美日韩中文在线观看| 色婷婷av一区二区三区在线观看| 中国人与牲禽动交精品| 国产成人免费91av在线| 欧美多人爱爱视频网站| 国产精品都在这里| 国产精品偷伦视频免费观看国产| 久久久国产视频| 国产成人涩涩涩视频在线观看| 久久久久久美女| 亚洲综合在线做性| 国内精品一区二区三区四区| 欧美猛男性生活免费| 日韩av在线免费播放| 日韩欧美高清在线视频| 国产精品18久久久久久麻辣| 国产精品女人久久久久久| 成人春色激情网| 久久五月情影视| 亚洲а∨天堂久久精品9966| 91夜夜未满十八勿入爽爽影院| 国内精品免费午夜毛片| 国产视频观看一区| 日韩av男人的天堂| 亚洲欧美国产精品| 亚洲美女av在线播放| 中文字幕欧美精品在线| 日韩在线观看免费av| 欧美一区二区影院| 久久九九亚洲综合| 国产精品精品视频一区二区三区| 日韩欧美中文在线| 亚洲国产日韩一区| 国产精品美女网站| 日韩美女中文字幕| 91日韩在线播放| 啊v视频在线一区二区三区| 国产丝袜一区视频在线观看| 国产91精品最新在线播放| 日韩成人激情影院| 精品久久久久久久大神国产| 国产精品久久久久久av下载红粉| 中文字幕视频在线免费欧美日韩综合在线看| 操人视频在线观看欧美| 国产91精品久久久久| 久久影视电视剧免费网站清宫辞电视| 日本高清久久天堂| 国产精品一区=区| 久久久久久国产精品三级玉女聊斋| 精品免费在线视频| 日韩在线国产精品| 亚洲美女av黄| 欧美尺度大的性做爰视频| 91免费视频网站| 中文字幕日韩免费视频| 欧美日在线观看| 欧美在线观看视频| 亚洲成人黄色在线观看| 亚洲最新av在线网站| 92看片淫黄大片看国产片| 国产亚洲精品久久久久久牛牛| 91精品国产自产在线观看永久| 一本一本久久a久久精品综合小说| 91精品中国老女人| 国产精品jizz在线观看麻豆| 91在线免费网站| 久久夜色精品国产欧美乱| 成人免费看片视频| 国产精品人成电影| 精品国产91久久久| 激情久久av一区av二区av三区| 亚洲人成在线观看网站高清| 在线看欧美日韩| 2023亚洲男人天堂| 久久精品国产一区二区电影| 亚洲国产精品专区久久| 国产欧美一区二区白浆黑人| 91日韩在线视频| 国产成人欧美在线观看| 国内精品久久影院| 国产欧美最新羞羞视频在线观看| 久久九九精品99国产精品| 午夜精品蜜臀一区二区三区免费| 日韩欧美在线免费观看| 亚洲视频自拍偷拍| 日韩在线中文视频| 国外成人性视频| 久久久午夜视频| 欧美黑人一区二区三区| 亚洲男人7777| 国产精品三级久久久久久电影| 成人黄色片网站| 午夜精品理论片| 亚洲最新av网址| 欧美极品少妇与黑人| 91色中文字幕| 欧美三级免费观看| 亚洲开心激情网| 国产精品美女www爽爽爽视频| 国产精品久久久久久av福利| 麻豆成人在线看| 亚洲美女在线观看| 亚洲自拍偷拍一区| 久久久久久国产三级电影| 51久久精品夜色国产麻豆| 亚洲人线精品午夜| 亚洲欧洲视频在线| 92看片淫黄大片欧美看国产片| 最新国产成人av网站网址麻豆| 亚洲精品乱码久久久久久按摩观| 亚洲国产欧美一区二区三区久久| 超碰精品一区二区三区乱码| 久久久久久久久久久成人| 亚洲国产精品成人精品| 日本不卡视频在线播放| 亚洲人成网7777777国产| 2019国产精品自在线拍国产不卡| 亚洲国产精品人人爽夜夜爽| 亚洲欧美色图片| 国产精品亚洲一区二区三区| 欧美不卡视频一区发布|