将SQL表数据合并到具有相同列名的现有SQL表

时间:2015-07-27 20:03:00

标签: sql sql-server-2008-r2 sql-insert

我有两个表,其中一个包含所有部件号(ITEMNO),另一个表包含COMMENT4。

我有另一个名称相同的表,但它只有第一个列表中的一些ITEMNO。

如果我运行此查询,我会

insert into dbo.icitem (comment4)
select COMMENT4 
from dbo.f1$ 
where dbo.icitem.ITEMNO = dbo.f1$.ITEMNO)

我收到此错误

  

Msg 4104,Level 16,State 1,Line 4

     

无法绑定多部分标识符“dbo.icitem.ITEMNO”。

comment4相同时,我希望F1$comment4 icitem插入ITEMNO

由于

2 个答案:

答案 0 :(得分:1)

据我所知,您需要使用更新操作而不是插入:

UPDATE dbo.icitem
SET comment4 = f1.comment4
FROM dbo.icitem inner join dbo.f1 on icitem.itemno=f1.itemno

答案 1 :(得分:0)

几个问题:

where dbo.icitem.ITEMNO = dbo.f1$.ITEMNO)

此行是一个问题,ITEMNO在此上下文中没有位置。在实践中,您应该加入该表并进行更新。

根据我的理解,与此类似的东西应该符合您的需求:

UPDATE item
SET item.COMMENT4 = f.COMMENT4
FROM dbo.icitem item
    JOIN dbo.f1$ f
        ON f.ITEMNO = item.ITEMNO

这将比较两个数据集,然后只更新icitem中的行,其中itemno与f1 $ table匹配