求教一个避免关于生成流水号重复的问题

jiangchuandong 2007-01-19 01:06:07
现在的系统生成流水号一直存在不時產生相同流水號的問題,想修改现有的存储过程。提出了1种方法

增加StartValue的, 避免時間差产生的流水号

DECLARE @startValue numeric
update basedb_m..commonstart set @startValue = startvalue = startvalue + 1
where tablename = 'ErrorLog' and colname is null and startdate = '2004-01-08 12:10:10.073'
print @startValue

我是考虑如果用这种方法的话,是不是有了多对磁盘的开销?

同时问问大家这种方法好不好,或怎么改进?


...全文
675 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiubolecn 2007-01-27
  • 打赏
  • 举报
回复
你的方法已经足够好了。
liangpei2008 2007-01-27
  • 打赏
  • 举报
回复
可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1
---------------------------------------------------------------------------
方法不错!这样可以解决在Form上添写主从表的信息,注意:如果锁设置不当,会锁定最大值表!
zrb007 2007-01-24
  • 打赏
  • 举报
回复
建个表来存当前最大值和步长,获取的时候用行级锁,保证唯一性
select ?
from tblCommonNumberRange with(rowlock)
smancn 2007-01-23
  • 打赏
  • 举报
回复
约束或主键啊?
xiequanqin 2007-01-22
  • 打赏
  • 举报
回复
identity 或者 用个表保留当前最大LSH
HappyQQ 2007-01-22
  • 打赏
  • 举报
回复
流水号的通用做法是:
记录新增时取最大值
当删除当前记录时,update当前删除记录以下的所有记录的流水号-1
lzuyh 2007-01-19
  • 打赏
  • 举报
回复
可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1
不错
playwarcraft 2007-01-19
  • 打赏
  • 举报
回复
要不在table上建個促發器?似乎也有起到隊列的作用??
caixia615 2007-01-19
  • 打赏
  • 举报
回复
恩2楼的方法不错...
sunylf 2007-01-19
  • 打赏
  • 举报
回复
用identity字段不行吧,有時要刪除,有時是一個月來流水。用存儲過程。
可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1
這個方法是好的。
九斤半 2007-01-19
  • 打赏
  • 举报
回复
可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1

UP
OracleRoob 2007-01-19
  • 打赏
  • 举报
回复
可以把流水号保存到一个单独的表中,在真正追加数据时才更新最大流水号+1
marco08 2007-01-19
  • 打赏
  • 举报
回复
为什么不用identity字段呢?

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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