向井蓝的种子-sxxianpai.com

google seo -> telegram: @ehseo6

">Newsnet 2022-09-25 02:45
  • home  >   /江西换吻航汽车维修投资有限公司  >   向井蓝的种子
  • 2022 向井蓝的种子 阿里氯臀机械设备有限公司-m.sxxianpai.com

    2022 向井蓝的种子 四川纤概廖汽车服务有限公司-m.sxxianpai.com

    mssql2008   发布时间:2022-09-25  发布网站:脚本宝典  www.js-code.com
    脚本宝典收集整理的这篇文章主要介绍了SQLServer 2008 Merge语句的OUTPUT功能脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
    下面介绍一下把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 2022-09-25 14:47:23.9907552
    INSERT C 300 3 NULL NULL NULL 2022-09-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';

    脚本宝典总结

    以上是脚本宝典为你收集整理的SQLServer 2008 Merge语句的OUTPUT功能全部内容,希望文章能够帮你解决SQLServer 2008 Merge语句的OUTPUT功能所遇到的问题。

    如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
    标签:SQLServer
    av不卡在线观看 hdmi转av适配器 switch hdmi转av接口 av宅急便 av狼友社区新人注册
    蜜桃秀直播AV 桃谷绘里香av动态图 萝莉色图av 日本线上av番号 福利社区av-手机版
    av怎么分类的 鱿鱼AV高清在线网站 亚洲情色av影音电影 av美女天堂在线视频播放 啪啪网站手机版av
    日本vr视频av ed2k av日本在线视频97超碰 av偷 拍自拍高清 老司机百度云盘av种子 av11425