gpt4 book ai didi

sql - 如何获取我的批量更新 SQL Server 的 ID

转载 作者:行者123 更新时间:2023-12-01 12:50:45 27 4
gpt4 key购买 nike

如何获取批量更新中受影响行的 ID?当我试图在所有更新/交易的表 tbl.history 上插入时。

下面是我的示例表:

table tbl.myTable
+------+-----------+------------+
| ID | Amount | Date |
+------+-----------+------------+
| 1 | 100 | 01/01/2019 |
+------+-----------+------------+
| 2 | 200 | 01/02/2019 |
+------+-----------+------------+
| 3 | 500 | 01/01/2019 |
+------+-----------+------------+
| 5 | 500 | 01/05/2019 |
+------+-----------+------------+

这是我的批量更新查询:

Update tbl.myTable set Amount = 0 where Date = '01/01/2019'

通过查询,它将更新/影响 ID 为 1 和 3 的两个数据。如何获取这些 ID 以将其插入另一个表 (tbl.history)?

最佳答案

使用 OUTPUT条款。它为您提供了一个名为 deleted 的“表”,其中包含更新前的值,以及一个名为 inserted 的“表”,其中包含新值。

所以,你可以运行

Update tbl.myTable set Amount = 0
output inserted.*,deleted.*
where Date = '01/01/2019'

要了解它是如何工作的,在这之后,您现在可以创建一个临时表并OUTPUT您想要的字段INTO:

Update tbl.myTable set Amount = 0
output inserted.*,deleted.* into temp_table_with_updated
where Date = '01/01/2019'

关于sql - 如何获取我的批量更新 SQL Server 的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com