建议为多用户处理MAX(NUM)

时间:2017-02-01 11:35:38

标签: sql-server sql-server-2005

我有一个Tickets表,其中包含数字和其他详细信息 当用户创建新票证时,新号码应为MAX(Num)+1
问题是如果大约有25个用户同时工作,我该如何为每张新票据处理这个号码 (如果最大编号为1000,则每个新票证将获得1001,因为尚未提交的交易)
请注意,用户应在提交前查看票号。

1 个答案:

答案 0 :(得分:1)

根据您的评论,我认为您应该使用identity column that auto increments,然后使用默认值bit column来指定该行已保存/已提交:

CREATE TABLE Tickets  
(  
 id int IDENTITY(1,1),  
 -- other columns
 isSaved bit DEFAULT 0 
);  

使用此方法,每次制作故障单时都会创建一个唯一id行,isSaved的默认值为false \ 0。当您到达舞台时,保存/提交故障单,您只需将isSaved标记设置为true \ 1

如果需要,您可以执行清理任务,通过检查isSaved列的值来删除未保存/提交的故障单。