校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQLServer 2008 Merge語句的OUTPUT功能

SQLServer 2008 Merge語句的OUTPUT功能

熱門標簽:沈陽智能外呼系統代理 海南自動外呼系統價格 電銷機器人虛擬號碼 舞鋼市地圖標注app 創業電銷機器人 松原導航地圖標注 九鹿林外呼系統怎么收費 滄州營銷外呼系統軟件 浙江地圖標注
下面介紹一下把Output同2008的新T-SQL語句Merge組合使用的方法:
新建下面表:
復制代碼 代碼如下:

CREATE TABLE Book(
ISBN varchar(20) PRIMARY KEY,
Price decimal,
Shelf int)

CREATE TABLE WeeklyChange(
ISBN varchar(20) PRIMARY KEY,
Price decimal,
Shelf int)

CREATE TABLE BookHistory(
Action nvarchar(10),
NewISBN varchar(20),
NewPrice decimal,
NewShelf int,
OldISBN varchar(20),
OldPrice decimal,
OldShelf int,
ArchivedAt datetime2)

SQL語句為
復制代碼 代碼如下:

MERGE Book AS B
USING WeeklyChange AS WC
ON B.ISBN = WC.ISBN
WHEN MATCHED AND (B.Price > WC.Price OR B.Shelf > WC.Shelf) THEN
UPDATE SET B.Price = WC.Price, B.Shelf = WC.Shelf
WHEN NOT MATCHED THEN
INSERT VALUES(WC.ISBN, WC.Price, WC.Shelf)
OUTPUT $action, inserted.*, deleted.*, SYSDATETIME()
INTO BookHistory;

結果集為:

SELECT * FROM BookHistory
GO

Action NewISBN NewPrice NewShelf OldISBN OldPrice OldShelf ArchivedAt
------ ------- -------- -------- ------- -------- -------- ---------------------------
UPDATE A 101 1 A 100 1 2007-11-25 14:47:23.9907552
INSERT C 300 3 NULL NULL NULL 2007-11-25 14:47:23.9907552

這里有Insert和Update兩種Output情況。如果只需要其中一種,可以用下面這種方法過濾:
復制代碼 代碼如下:

INSERT INTO Book(ISBN, Price, Shelf, ArchivedAt)
SELECT ISBN, Price, Shelf, GETDATE() FROM
(MERGE Book AS B
USING WeeklyChange AS WC
ON B.ISBN = WC.ISBN AND B.ArchivedAt IS NULL
WHEN MATCHED AND (B.Price > WC.Price OR B.Shelf > WC.Shelf) THEN
UPDATE SET Price = WC.Price, Shelf = WC.Shelf
WHEN NOT MATCHED THEN
INSERT VALUES(WC.ISBN, WC.Price, WC.Shelf, NULL)
OUTPUT $action, WC.ISBN, Deleted.Price, Deleted.Shelf
) CHANGES(Action, ISBN, Price, Shelf)
WHERE Action = 'UPDATE';
您可能感興趣的文章:
  • SQLServer2008的實用小道具 merger使用介紹
  • SQLServer 2008中SQL增強之三 Merge(在一條語句中使用Insert,Update,Delete)
  • php函數array_merge用法一例(合并同類數組)
  • SQLServer中merge函數用法詳解

標簽:臺灣 西藏 公主嶺 咸寧 日喀則 海口 商洛 寶雞

巨人網絡通訊聲明:本文標題《SQLServer 2008 Merge語句的OUTPUT功能》,本文關鍵詞  SQLServer,2008,Merge,語句,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLServer 2008 Merge語句的OUTPUT功能》相關的同類信息!
  • 本頁收集關于SQLServer 2008 Merge語句的OUTPUT功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 库车县| 榕江县| 白沙| 嘉义县| 娱乐| 灌云县| 靖西县| 富蕴县| 乃东县| 平罗县| 搜索| 隆尧县| 芦山县| 嘉峪关市| 玉树县| 兰州市| 太谷县| 定安县| 巴林右旗| 莒南县| 渭源县| 石景山区| 文山县| 宿松县| 大新县| 上高县| 莒南县| 台安县| 禹州市| 东台市| 深州市| 静乐县| 彭山县| 沧州市| 博罗县| 黔西| 杭锦旗| 丰城市| 荔波县| 长顺县| 丹凤县|