2012-05-08 31 views
0

表1如何通過比較ID和使用WHERE子句來使用INSERT INTO?

ID 
Position 
Other 
Other 
Name 
Description 

表2

ID 
Name 
Description 
LN 
Other 

我想所有的值從Table2轉移到Table1其中Table1.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' 
+0

什麼是錯誤的存在INSERT正弦? –

+0

@Nov .....你有問題嗎? – MikeTWebb

+3

如果ID在兩個表中都沒有意義,那麼插入沒有任何意義嗎? – Gratzy

回答

2

你建議立即進行刪除使用UPDATE不能插入

+0

中仍然存在錯誤,爲什麼更新? –

0

下你想要做什麼。這是你寫的一個小的變體,其中包括剛剛在表1 from子句:

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

對我來說,這個數據佈局看起來有點怪怪的,因爲它插入「身份證」的副本到表1。但是,這確實回答了你的問題。

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' 
+0

這個'UPDATE ... SET ... FROM ... INNER JOIN'語法非常酷!它會派上用場。 :-) –