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

时间:2019-04-09 10:46:25

标签: sql sql-server select insert sql-insert

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

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

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

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

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

1 个答案:

答案 0 :(得分: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