我正在尝试将值从一个数据库中的表中的列复制到另一数据库中的表中的列。
代码是:
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
。
答案 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