从当前最高ID +1开始填充顺序ID

时间:2019-02-08 23:51:39

标签: sql ms-access

我正在创建一个上传文档,该文档将用于将新帐户推送到我们的计费系统中。我有一个显示所有当前帐户及其ID(VEX_CustomL0)的表。我想从当前最高ID + 1开始填充上传文档中的ID列。

我尝试创建一个临时表(NumberLine),该表包含用于生成下一个500个ID的序列号。然后,我使用ID更新了上传文件。

UPDATE UPLOAD_FILE, NumberLine 
SET UPLOAD_FILE.C_EZCOM = NumberLine.VAL;

我希望Access在NumberLine中取最高值(1-12)并填充上载文档。相反,它采用了最低值(488-500)。

1 个答案:

答案 0 :(得分:0)

根据您的描述和所提供的有限信息,我假设您的表NumberLine仅包含500条记录,而VAL字段包含一个连续整数,例如:

+-----+
| VAL |
+-----+
|   1 |
|   2 |
|   3 |
| ... |
| 500 |
+-----+

在这种假设下,请注意您当前的UPDATE查询正在使用笛卡尔积更新记录:即,对于UPLOAD_FILE中的每个记录,用值更新C_EZCOM的值{{1}中的 中每个记录的VAL中的

您可以通过将NumberLine查询更改为UPDATE查询,并输出SELECTC_EZCOM字段来直接观察这种行为。

因此,每个VAL记录所保存的结果值将仅仅是C_EZCOM查询最后遇到的NumberLine中的记录(除非数据具有定义的排序顺序,使用UPDATE子句,可能是任何记录。

虽然我可以确定您当前解决方案的问题,但是除非您提供一些示例数据以及预期结果,否则很难建议实现目标的最佳方法。