处理重复单号问题

messi_yang 2011-10-26 04:01:54
在wimform模式下.调用存储过程.在界面添加保存时候执行.每次读取当前表中最大的ID.然后+1即为最新的单号.但是如果多人同时操作此表.有可能就导致了重复单号的出现.如何能够很好的解决此问题呢?能否给一个小例子 谢谢各位大大了.
...全文
455 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
scjingming 2011-10-26
  • 打赏
  • 举报
回复
用户ID+单号。
lgq_liang 2011-10-26
  • 打赏
  • 举报
回复
你这个就是一个并发的问题,同时操作会出现重复号码,加个时间戳
messi_yang 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 a78782295 的回复:]
我这有个例子,怎么发你?!
[/Quote]
messi_yang@163.com
谢谢
咿呀大河马 2011-10-26
  • 打赏
  • 举报
回复
我这有个例子,怎么发你?!
pengxuan 2011-10-26
  • 打赏
  • 举报
回复
留待高手
messi_yang 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yhui1989love 的回复:]
用事务 在一个人操作数据时不允许其他人操作 如果操作失误则回滚 具体的例子你查查事务方面的东东看看
[/Quote]
能否给一个小的列子.谢谢
Ny-6000 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yhui1989love 的回复:]
用事务 在一个人操作数据时不允许其他人操作 如果操作失误则回滚 具体的例子你查查事务方面的东东看看
[/Quote]

好办法,否则总是同时操作,会出大问题地
messi_yang 2011-10-26
  • 打赏
  • 举报
回复
我使用的单号方法是 字母+年月+流水号的情况来保存.在网上也看到过类似的问题.先生成一单号.然后再重新遍历此表看是否有此刚刚生成的单号.没有就保存完成.有就在刚生成的单号+1.我觉得这个比较麻烦.能否有比此更好的办法呢?
叶子 2011-10-26
  • 打赏
  • 举报
回复

DECLARE @t TABLE(id INT IDENTITY,colname VARCHAR(10))
INSERT INTO @t SELECT 'a' UNION ALL SELECT 'b'

SELECT @@identity
/*
2
*/
--不要用max(id)+1
messi_yang 2011-10-26
  • 打赏
  • 举报
回复

不太像用多线程.比较占用资源...
zhangweitc123 2011-10-26
  • 打赏
  • 举报
回复
应该在程序端写个线程的方法吧
具体的和LZ一起等
yhui1989love 2011-10-26
  • 打赏
  • 举报
回复
用事务 在一个人操作数据时不允许其他人操作 如果操作失误则回滚 具体的例子你查查事务方面的东东看看

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧