我有一个表名为SuperKittens的列名' KittenId'
此值是一个数字,例如12345。
我还有一个名为Kittens的表,有两列,KittenId和KittenNewId
我想更新SuperKittens并将所有KittenId更改为KittenNewId,使用表Kittens查找值。
我认为这样的事情可能有用,但显然它无效:
UPDATE SuperKittens SK
SET SK.KittenId =
(SELECT KittenNewId FROM Kittens K WHERE K.KittenId = SK.KittenId)
有什么想法吗?
编辑:我得到的错误是它的SQL无效:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'SK'.
答案 0 :(得分:1)
您可以尝试这样:
UPDATE SuperKittens SK
SET SK.KittenId = K.KittenNewID
FROM Kittens K INNER JOIN ON SK.KittenId = K.KittenId
或者您可以尝试使用这样的合并选项:
MERGE INTO SuperKittens SK
USING Kittens K
ON SK.KittenId = K.KittenId
WHEN MATCHED THEN
UPDATE
SET SK.KittenId = K.KittenNewID;
答案 1 :(得分:0)
另一种选择;
UPDATE SuperKittens SK
SET SK.KittenId = K.KittenNewID
FROM Kittens K
WHERE
K.KittenId = SK.KittenId
答案 2 :(得分:0)
以这种方式尝试查询:
UPDATE SuperKittens SK, Kittens K
SET SK.KittenId = K.KittenNewId
WHERE K.KittenId = SK.KittenId
我已经在Access中对它进行了测试,但它确实有效; - )