我需要使用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语法,那将会很棒。
答案 0 :(得分:3)
我设法搞清楚了。这就是我想出来的
UPDATE [LinkedTable], [PrimaryTable]
SET [LinkedTable].[PT_ID] = [PrimaryTable].[NewID]
WHERE [LinkedTable].PT_ID] = [PrimaryTable].[OldID]
当你看到它之前看起来非常基本: - /