最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2009年07月13日 21:38:49   作者:  
SQL Server 2005中的Output功能可以把Insert,Update和Delete的內(nèi)容都返回,2008中的Output同樣具有此功能
下面介紹一下把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';

相關(guān)文章

最新評(píng)論

股票| 娱乐| 巴彦淖尔市| 哈尔滨市| 柳河县| 大新县| 广水市| 玉树县| 蕲春县| 屯门区| 扬中市| 北流市| 汪清县| 闽清县| 蒲江县| 彭山县| 万载县| 滁州市| 邛崃市| 东源县| 沙坪坝区| 江永县| 呈贡县| 阳朔县| 宣恩县| 松江区| 如皋市| 红桥区| 斗六市| 荣昌县| 渑池县| 博客| 临澧县| 沭阳县| 鲜城| 泾阳县| 林甸县| 三门峡市| 乌兰察布市| 岳普湖县| 石首市|