如何保持流水号唯一

bonnibell 2005-12-06 10:31:55
因为要同时更新两个表

即 往表a中添加记录时 表a中的当前记录的流水号 要同时添加到表 b 中 ,

所以 往表a 中添加记录时 要先读出最大的流水号(varchar(16)) 并 加1作为当前的流水号

用.net 怎样保持流水号唯一呢 ?


...全文
337 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonnibell 2005-12-06
  • 打赏
  • 举报
回复
谢谢各位了啊!!!!!!

结贴
aobao 2005-12-06
  • 打赏
  • 举报
回复
我也不太懂,帮你顶一下,一起学习。
xczgb 2005-12-06
  • 打赏
  • 举报
回复
我一直用的是Guid.NewGuid().ToString()
smallMage 2005-12-06
  • 打赏
  • 举报
回复
呵呵咋不用newid,我郁闷。你自己写个自动序号就可以了
qwerttyy 2005-12-06
  • 打赏
  • 举报
回复
楼上说很多了
sunnystar365 2005-12-06
  • 打赏
  • 举报
回复
Guid.NewGuid().ToString()
全球唯一号
caicaibao 2005-12-06
  • 打赏
  • 举报
回复
GUID没有重复的,你不用担心,
搞一个自增列,转成16位,不足前面补零
Seeko0 2005-12-06
  • 打赏
  • 举报
回复
使用存储过程,在一个过程中解决你的问题。
最大的流水号要能够转化成int型,自己先制定编号规则,这个应该不是什么问题。
请看create procedure NumAdd
(
@r nvarchar(10) output --输入输出r的值
)
as
--declare @r nvarchar(10)
declare @temp nvarchar(10)
declare @r2 nvarchar(10)
--set @r='R0000010'
--select @r

--前面加1方便转换成int型
set @temp = '1'+substring(@r,2,len(@r)-1)


--select @temp
--add 1
set @temp=cast(@temp As int)+1

--还原
set @r='R'+substring(@temp,2,len(@temp)-1)
--select @r
sugarsupper 2005-12-06
  • 打赏
  • 举报
回复
select from with xlock,paglock
bonnibell 2005-12-06
  • 打赏
  • 举报
回复
.net 中是怎么lock 的?
pontus 2005-12-06
  • 打赏
  • 举报
回复
lock 一下啊
jxufewbt 2005-12-06
  • 打赏
  • 举报
回复
System.Guid.NewGuid().ToString()
bonnibell 2005-12-06
  • 打赏
  • 举报
回复
俺是考虑到有并发啊
sweet12345 2005-12-06
  • 打赏
  • 举报
回复
Guid.NewGuid().ToString()
他跟SQL Server里面的identifier数据类型是一致的
或者你用SQL Server里面的timestamp也可以。。。。
jimmylin1000 2005-12-06
  • 打赏
  • 举报
回复
你说的方法很常用.有什么问题吗?
sweet12345 2005-12-06
  • 打赏
  • 举报
回复
或者你用.NET下面的GUID类,他可以保证产生全球唯一的ID号码,用法如下:
Guid.NewGuid
sweet12345 2005-12-06
  • 打赏
  • 举报
回复
用你上面的方法就可以,或者你用一个SQL Server的一种数据类型叫做identifer吧,每次你new 一个新的id就可以
建哥聊IT 2005-12-06
  • 打赏
  • 举报
回复
用你上述方法应该也可以的.

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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