SQL Server使用新主键复制数据而不删除旧数据

时间:2015-03-17 20:55:25

标签: sql sql-server foreign-keys primary-key

这是我想要做的一个例子:

说我有Name表:

ID (PK) | ForeignKeyID (FK) | Data1 | Data2 |

然后说我有

等数据
1 4 John 12
2 4 Josh 13
3 4 Kelly 15

有没有办法可以将这些数据复制到同一个表中,只更改主键和外键?

示例:

4 99 John 12
5 99 Josh 13
6 99 Kelly 15

我已经创建了一个新的父行(ID为99)。在我的表格中,我已将主键设置为自动增量,因此我并不关心我的主键值是什么。现在,我想获取外键id = 4的所有行,并将该数据复制到此Name表中,其中外键id = 99.我不想移动数据。外键= 4的数据应该仍然存在。我该怎么做呢?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要INSERT INTO SELECT声明:

INSERT INTO Name (ForeignKeyID, Data1, Data2)
SELECT 99, Data1, Data2
FROM Name
WHERE ForeignKeyID = 4