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

主頁(yè) > 知識(shí)庫(kù) > SQLServer 2008 Merge語(yǔ)句的OUTPUT功能

SQLServer 2008 Merge語(yǔ)句的OUTPUT功能

熱門(mén)標(biāo)簽:沈陽(yáng)智能外呼系統(tǒng)代理 海南自動(dòng)外呼系統(tǒng)價(jià)格 電銷(xiāo)機(jī)器人虛擬號(hào)碼 舞鋼市地圖標(biāo)注app 創(chuàng)業(yè)電銷(xiāo)機(jī)器人 松原導(dǎo)航地圖標(biāo)注 九鹿林外呼系統(tǒng)怎么收費(fèi) 滄州營(yíng)銷(xiāo)外呼系統(tǒng)軟件 浙江地圖標(biāo)注
下面介紹一下把Output同2008的新T-SQL語(yǔ)句Merge組合使用的方法:
新建下面表:
復(fù)制代碼 代碼如下:

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語(yǔ)句為
復(fù)制代碼 代碼如下:

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;

結(jié)果集為:

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情況。如果只需要其中一種,可以用下面這種方法過(guò)濾:
復(fù)制代碼 代碼如下:

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的實(shí)用小道具 merger使用介紹
  • SQLServer 2008中SQL增強(qiáng)之三 Merge(在一條語(yǔ)句中使用Insert,Update,Delete)
  • php函數(shù)array_merge用法一例(合并同類(lèi)數(shù)組)
  • SQLServer中merge函數(shù)用法詳解

標(biāo)簽:臺(tái)灣 西藏 公主嶺 咸寧 日喀則 海口 商洛 寶雞

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQLServer 2008 Merge語(yǔ)句的OUTPUT功能》,本文關(guān)鍵詞  SQLServer,2008,Merge,語(yǔ)句,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQLServer 2008 Merge語(yǔ)句的OUTPUT功能》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于SQLServer 2008 Merge語(yǔ)句的OUTPUT功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 赣州市| 乌拉特中旗| 陆丰市| 彭阳县| 根河市| 惠东县| 白沙| 商丘市| 攀枝花市| 四平市| 贵德县| 平顺县| 始兴县| 河池市| 莱西市| 抚宁县| 景泰县| 蕉岭县| 明星| 博爱县| 福泉市| 友谊县| 高密市| 大厂| 务川| 仪陇县| 开封市| 鹰潭市| 灵寿县| 辽宁省| 台北县| 西安市| 招远市| 迭部县| 清丰县| 乳源| 普格县| 芷江| 呼和浩特市| 托里县| 舟曲县|