我有一个Product表包含id和name。我想说,我有,
Id Name
1 A
2 B
3 C
我想更新Id = 2的行,其中行的值为Id = 1.这就是我要查找的内容,
Id Name
1 A
2 A
3 C
我正在尝试不同的语法,但没有任何效果。
更新:上面的示例使用了一列,但我有许多列要更新。
答案 0 :(得分:2)
你可以这样做:
UPDATE P1 SET P1.Name = P2.Name, P1.X = P2.X, ......
FROM Products P1 CROSS JOIN Products P2 WHERE P1.Id = 2 AND P2.Id = 1;
答案 1 :(得分:1)
您需要更新每一栏
UPDATE Product
SET
Product.Name = anotherRow.Name
, Product.AnotherColumn = anotherRow.AnotherColumn,
--, Other columns
FROM
(
SELECT
Name
, AnotherColumn
--, other columns
FROM Product
WHERE ID = 1
) anotherRow
WHERE
Product.ID = 2
或者,如果复制数据后,您将删除ID = 1的行,然后仅更新ID列