将数据从一个表插入另一个表但在另一个表中

问题描述 投票:0回答:1

我有两个包含所有相同表的数据库。所以我试图将数据从一个数据库中的一个表复制到另一个数据库中的同一个表。

我收到此错误'数据库中已经有一个名为'PayComponents'的对象。

不确定另一种方式来实现我想要的

SELECT * INTO [PSD2394].DBO.PayComponents
FROM [PSD1346].DBO.PayComponents
WHERE PCompID != 1 AND PCompID != 2

预期结果 - 来自DB - PSD1346的所有记录,除非将PCompID = 1和2插入到DB中的PayComponents表中 - PSD2394

sql sql-server select insert sql-insert
1个回答
1
投票

SELECT INTO每次都会创建一个新表,如果这是您想要的,那么您需要先删除该表。

要附加到现有表中,您需要使用INSERT INTO SELECT,就像这个例子一样

INSERT * INTO [PSD2394].DBO.PayComponents (column names...)
SELECT pc.column names...
FROM   [PSD1346].DBO.PayComponents pc
WHERE  pc.PCompID != 1 
AND    pc.PCompID != 2

如果[PSD2394].DBO.PayComponents的主键是标识字段,则无法复制它,因为数据库不允许您在标识字段中编写自己的值。 如果你真的需要,试试这个

SET IDENTITY_INSERT [PSD2394].DBO.PayComponents ON

do the insert statement here...

SET IDENTITY_INSERT [PSD2394].DBO.PayComponents OFF
© www.soinside.com 2019 - 2024. All rights reserved.