使用 OUTPUT 子句显 示 custid、oldregion 列原来的值及 newregion 列的新值

使用 OUTPUT 子句显
示 custid、oldregion 列原来的值及 newregion 列的新值

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    假设我们有一个名为 customers 的表,其中包含 custid、name 和 region 列。我们可以像这样使用 OUTPUT 子句来同时显示 custid 列的值,oldregion 列的原始值,以及 newregion 列的新值:

    UPDATE customers
    SET region = 'West'
    OUTPUT inserted.custid, deleted.region as oldregion, inserted.region as newregion
    WHERE region = 'Midwest'
    
    • 首先,我们使用 UPDATE 语句来更新 customers 表中的所有 Midwest 地区的客户数据,将其地区更改为 West。
    • 然后,我们使用 OUTPUT 子句来指定我们要输出的列:inserted.custid 表示更新后的客户 ID,deleted.region 表示更新前地区的值,inserted.region 表示新地区的值。
    • 最后,我们使用 WHERE 子句来过滤我们要更新的客户数据。在这个例子中,我们只更新了 Midwest 地区的客户数据。

    输出结果将包含所有受影响的行,并显示更新前后的所有值,如下所示:

    custidoldregionnewregion
    1MidwestWest
    3MidwestWest
    4MidwestWest
    5MidwestWest

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^