2012-07-10 70 views
1

我需要從另一個表更新一些數據..更新數據

我想簡單地採取從COL1的數據表1至表2中COL1,該行是在同一位置所以是不是真的任何身份證比較這是需要做..

我該怎麼做?

----------------------------------------- 
Db1.Table1 (Take yearModel from this table to update Table3) 
----------------------------------------- 
imgid   | int | PK | 
yearModel  | int | 
----------------------------------------- 


----------------------------------------- 
Db2.Table2 (Go by this table to update Table3) 
----------------------------------------- 
imgid   | int | PK | 
uploadId  | int | FK (With table3.uploadId) | 
------------------------------------------ 

------------------------------------------ 
Db2.Table3 (Update this table with the yearModel from table1) 
------------------------------------------- 
uploadId  | int | PK | 
uploadYearModel | int | 

對不起,我的數據庫diagaram「啄」已經崩潰了一些奇怪的原因.. :( 我希望你GE的想法

我還要提到的是表1位於另一個database..which林不知道是否重要..但是.. ..

在此先感謝!

+0

每個表中有6000行......我需要將table1中的row1上的col1更新爲table1中row1中的col1,然後更新table1中row1中的col1以更新col1,然後將table1中row1中的col1更新爲等等.. – Inx 2012-07-10 09:08:54

+2

你能告訴我們一些表結構等,並解釋一下你想做什麼?而你的意思是*相同的位置*? SQL Server沒有「隱式」位置或行號或任何其他內容 - 如果你想比較兩個表中的行,你必須有**某種通用的ID或某些事情去...... – 2012-07-10 09:09:21

回答

2

如果你有兩個表&此鍵列有兩個表中的值相同(他們refernce兩個表中相同的行),然後在下面的查詢應該工作在一個共同的鍵列:

UPDATE Table1 
SET  Column1 = t2.Column1 
FROM Table2 t2 INNER JOIN Table1 t1 ON t2.KeyColumn = t1.KeyColumn 

編輯:

UPDATE Table3 
SET uploadYearModel = t1.yearModel 
FROM Table1 t1 
     INNER JOIN Table2 t2 ON t2.imgid = t1.imgid 
     INNER JOIN Table3 t3 ON t3.uploadId = t2.uploadId 
0
UPDATE table2 SET col1=(
     SELECT top 1 col1 FROM table1 WHERE table1.id=table2.id 
) 
0

要更新現有的記錄:

UPDATE table2 
SET table2.c1 = table1.c1, 
table2.c2 = table1.c2, 
table2.c3 = table1.c3 
FROM table1, table2 
WHERE table1.c1 = table2.c1