使用另一个表中的值替换表列中的值

时间:2013-04-23 08:44:06

标签: sql jet

我需要使用SQL通过Microsoft JET数据库引擎将一些表迁移到Microsoft Access数据库中的新架构。实际上,主表中有一个ID列,用作其他几个表中的外键。我需要将此ID列更改为自动编号列。不幸的是,没有办法通过Microsoft 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

使用新ID替换链接表中的值的正确SQL语句是什么? (即7变为1,21变为2,18变为3)如果这是Microsoft JET语法,那将会很棒。

1 个答案:

答案 0 :(得分:3)

我设法搞清楚了。这就是我想出来的

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

当你看到它之前看起来非常基本: - /