2013-04-23 142 views
3

我需要通過使用SQL的Microsoft JET數據庫引擎將某些表遷移到Microsoft Access數據庫中的新模式。主表中有一個ID列可用作其他幾個表中的外鍵。我需要將此ID列更改爲自動編號列。不幸的是,沒有辦法通過微軟JET來做到這一點。使用另一個表中的值替換表列中的值

我想出的解決方案是創建一個自動編號列的新列。然後,我需要轉到其他表並使用新的自動編號ID替換原始外鍵ID,如下所示;

主表

New ID Old ID Other column 
1  7  bla 
2  21  bla 
3  18  bla 

鏈接表

PT_ID Data 
7  bla 
7  bla 
18  bla 
21  bla 

什麼是正確的SQL語句與新的ID替換鏈接表中的值? (即7變成1,21變成2,而18變成3)如果這是微軟JET語法,那將是很棒的。

回答

3

我設法弄清楚了。這是我想出了

UPDATE [LinkedTable], [PrimaryTable] 
SET [LinkedTable].[PT_ID] = [PrimaryTable].[NewID] 
WHERE [LinkedTable].PT_ID] = [PrimaryTable].[OldID] 

,當你看到它,你之前制定了這樣看起來非常基本的: -/

+0

偉大的答案。很多其他的信息都是爲​​了做到這一點,但是在'SET'之前的初始'UPDATE'位不包括'PrimaryTable' ...這一切都是不同的。謝謝 – Luke 2016-12-07 22:22:54

相關問題