0

表格1

ID
Position
Other
Other
Name
Description

表2

ID
Name
Description
LN
Other

我想将所有值Table2Table1whereTable1.ID = Table2.IDTable2.LN = 'en'

以下查询给出错误。制定查询的正确方法是什么?

INSERT INTO dbo.Table1(Name, Description)
    SELECT  
        Name, Description 
    FROM
        dbo.Table2
    WHERE
        Table2.ID = Table1.ID 
        AND Table2.LN = 'en'
4

4 回答 4

6
Update table1
set table1.name = table2.name,
    table1.description = table2.description
from
table1  inner join
table2  on table1.id = table2.id
where table2.ln = 'en'
于 2012-05-08T20:26:43.233 回答
2

你应该使用 UPDATE 而不是 INSERT

于 2012-05-08T20:25:03.137 回答
2

我认为您需要进行更新而不是插入正弦,您正在映射到表 1 中已经存在的 ID

这显示了如何创建一个过程来更新多个列

于 2012-05-08T20:26:25.513 回答
0

以下做你想要的。它是您所写内容的一个小变体,仅在 from 子句中包含 Table1:

INSERT INTO dbo.Table1(Name,Description)
    SELECT Name, Description
    FROM dbo.Table2 join
         Table1
         on Table2.id = Table1.id
    WHERE Table2.LN = 'en'

对我来说,这个数据布局看起来有点奇怪,因为它在 Table1 中插入了重复的“id”。但是,这确实回答了您的问题。

于 2012-05-08T20:25:56.163 回答