多部分标识符无法绑定(INSERT语句)

时间:2019-03-03 19:28:43

标签: sql sql-server tsql

我正在尝试将值从一个数据库中的表中的列复制到另一数据库中的表中的列。

代码是:

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1)
   SELECT field1
     FROM SourceDatabase.dbo.SourceTable
     WHERE (SourceTable.ID= TargetTable.ID) 

我正在

  

无法绑定多部件标识符

TargetTable.ID上的错误。

我用过dbo.TargetTable.ID,但遇到同样的错误。

如果仅使用ID,则会得到无效的列名ID

3 个答案:

答案 0 :(得分:1)

您可能想要一个update

UPDATE tt
   SET field1 = st.field1
   FROM dbo.TargetTable tt JOIN
        SourceDatabase.dbo.SourceTable st 
        ON st.ID = tt.ID;

INSERT插入带有行值的新行。 UPDATE更新现有行中的列值。

答案 1 :(得分:0)

使用EXISTS来引用TargetTable

INSERT INTO dbo.TargetTable(field1)
    SELECT field1
    FROM SourceDatabase.dbo.SourceTable
    WHERE EXISTS (SELECT 1 FROM dbo.TargetTable WHERE SourceTable.ID = TargetTable.ID) 

答案 2 :(得分:0)

尝试

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1)
   SELECT field1 
     FROM SourceDatabase.dbo.SourceTable inner join dbo.TargetTable on 
     SourceTable.ID= TargetTable.ID