请教一下关于单据编号的产生办法,ORACLE,SYBASE,SQL SERVER。。

lanba 2002-01-31 01:00:43
请教一下关于单据编号的产生办法,ORACLE,SYBASE,SQL SERVER。。
最好能有个例子
...全文
141 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanba 2002-02-01
  • 打赏
  • 举报
回复
没人回答了???
lanba 2002-01-31
  • 打赏
  • 举报
回复
to:china_lyz(彦召软件工作室) 
月日+一个4至5位的数字 避免不了上述问题的
因为考虑的是一个实时性很强的项目
查MAX+1的方法大系统我觉得不行的。
lanba 2002-01-31
  • 打赏
  • 举报
回复
to:BraveYang(勇敢的羊) 
有没有一个实例
因为大型系统中,这些处理都是瞬间,处理的不好,会导致系统失败
因而太重要了
我们以前一直是MAX表处理,但总觉得不太稳定.
china_lyz 2002-01-31
  • 打赏
  • 举报
回复
写一个函数
年月日+一个4至5位的数字
BraveYang 2002-01-31
  • 打赏
  • 举报
回复
可以使用事务机制,如果新增失败,会回滚的

先锁表—》读MaxID+1-》操作-》释放表
iBear 2002-01-31
  • 打赏
  • 举报
回复
如果在一个多用户的环境中简单的使用max id+1的方法来建立自增字段是不太可行的,想想就明白了!
Mylove1979 2002-01-31
  • 打赏
  • 举报
回复
这个可以写一个存储过程,来生成编号。每次可以取单据数据表中最大的编号值+1以后就可以生成一个新编号。这样也不会重复。不过当你删除记录时,就会有断号的情况。如果不允许有断号存在,就还要做进一步的处理,比如说加一个字段来标记这个记录是有效,册除时给记录做一个标记,并不做真正的删除,等到有新记录要添加到数据库中时,首先查找是否有做了删除标记的记录,如果有,则用新记录替换原来记录,编号不变;没有,则生成一个记录编号,向数据库中插入一条新的记录。
40Star 2002-01-31
  • 打赏
  • 举报
回复
年月日+一个4至5位的自增型的数字(自增要靠自己编)

一般都用这个方法
lanba 2002-01-31
  • 打赏
  • 举报
回复
怎么这么少人?
lanba 2002-01-31
  • 打赏
  • 举报
回复
在数据库中锁记录不容易,特别是大型系统中,
没有行锁
很容易取到同样的单据号就惨了。
chjcwl 2002-01-31
  • 打赏
  • 举报
回复
我觉得还是取最大号+1比较好,虽然麻烦,但是可控。自增型字段编号由系统自动产生,即使你将前一张删除,它仍旧增长,如果用户要求连号就更可怕了。
getit911 2002-01-31
  • 打赏
  • 举报
回复
可以使用自增型字段

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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