克隆记录在同一个表中

时间:2012-11-14 04:36:52

标签: sql sql-server-2008 insert

This答案接近我的需要,但我的情况略有不同。我有一个SQL表看起来像这样。

+------+----------+-----------+
|  aid |  afname  |  alname   |
+------+----------+-----------+
|  01  |  John    |  Doe      |
|  02  |  Stephen |  Williams |
|  03  |  Jane    |  Doe      |
|  04  |  Peter   |  Brown    |
|  05  |          |           |
+------+----------+-----------+

现在我需要克隆/复制具有 02 afname的行中的alnameaid字段,然后将其插入到行中aid 05

这是我尝试的查询,但它会抛出语法错误。

INSERT INTO table1(afname, alname) 
WHERE aid = '05'
SELECT afname, alname
FROM table1
WHERE aid = '02'

有人可以告诉我一种方法来实现这个目标吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

如果您没有aid ='05'的行:

INSERT INTO table1(aid,afname, alname)
SELECT '05', afname, alname
FROM table1
WHERE aid = '02'

如果你有aid ='05'的行,并且想要更新它:

update t2
set t2.afname = t1.afname, t2.alname = t1.alname
from table1 t1 join table1 t2 on t1.aid = '02' and t2.aid = '05'