3

我需要使用 SQL 通过 Microsoft JET DB 引擎将一些表迁移到 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 语法,那就太好了。

4

1 回答 1

3

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

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

当你看到它在你喜欢之前布置的时候看起来真的很基本:-/

于 2013-04-23T09:01:44.267 回答