小编000*_*000的帖子

当 SET = (Sql Query) 时更新多个 Id

我想更新多条记录,但是设置的值基于给定记录的主键。这不是单个记录的问题,因为我可以使用:

UPDATE T1
     SET A1 = (SELECT TOP 1 X FROM T2 WHERE Y = ID1)
     WHERE A2 = ID1
Run Code Online (Sandbox Code Playgroud)

IN 运算符适用于 WHERE 子句,因为它会更新正确的列表,但不会在子查询中更新。在 SET 中,它将从 ID 列表中的所有值中获取前 1 个值,我只希望它用于相应的记录/ID。

使用:Microsoft T-SQL

谢谢你

performance sql-server primary-key query-performance

3
推荐指数
1
解决办法
4985
查看次数