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



我正在创建一个上传文档,用于将新帐户推送到我们的计费系统中。我有一个表格,显示所有活期账户及其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)。

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

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

在此假设下,请注意,您当前的UPDATE查询正在使用笛卡尔乘积更新记录:也就是说,对于UPLOAD_FILE中的每个记录,用VAL的值更新C_EZCOM的值,用于NumberLine中的每个记录。。。

通过将UPDATE查询更改为SELECT查询,输出C_EZCOMVAL字段,可以直接观察到这种行为。

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

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

最新更新