如何在SQL Server中的多个用户增量编号字段时避免错误

时间:2017-01-17 16:46:42

标签: sql-server excel vba

我正在使用SQL Server Express 2016和Excel VBA为一堆不同的Excel文档生成唯一的批号。目前,我正在创建一个新行,然后SQL Server中的脚本递增批号。然后我运行一个select语句来从刚刚创建的行中获取该字段。到目前为止,我没有遇到任何问题,但是,我担心如果excel文件同时被不同用户触发,则一个用户的select查询可能会抓取另一个用户创建的行。这是一个问题吗?如果是这样,我该如何避免呢?

statement = "INSERT INTO LotInfo(RefNum,DateCreated,UserName)VALUES('" &  RefNum 
 & "','" & DateCreated & "','" & user & "')"

conn.Execute statement

Set lot = conn.Execute("SELECT top 1 Lot FROM LotInfo Order By ID desc;")

1 个答案:

答案 0 :(得分:1)

我不相信范围标识会起作用。 这些陈述是完全独立的。首先你做插入。结束了。然后你发送选择。虽然我并不是100%熟悉VBA,但我不确定第二个选择是否会知道第一张发票的结果。 我建议你创建一个可以从VBA调用的存储过程。 该过程将执行插入,然后返回批号。