0

表1

ID
Position
Other
Other
Name
Description

表2

ID
Name
Description
LN
Other

Table2すべての値をからTable1どこTable1.ID = Table2.IDに転送したいTable2.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

INSERTではなくUPDATEを使用する必要があります

于 2012-05-08T20:25:03.137 に答える
2

Table1 に既に存在する ID にマッピングしている INSERT sine の代わりに Update を実行する必要があると思います

これは、複数の列を更新するプロシージャを作成する方法を示しています

于 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'

「id」の重複を Table1 に挿入するため、このデータ レイアウトは少し奇妙に見えます。ただし、これはあなたの質問に答えます。

于 2012-05-08T20:25:56.163 に答える