MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQLServer中自动生成唯一订单编号大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
项目开发中,需要订单功能,本来想前台使用c#自动生成订单编号,但是功力尚浅不敢保证在高并发的情况下不重复,无奈转到数据库使用存储过程自动生成订单编号,如下
建表 TBL_Ordernumber @H_801_7@
create table TBL_Ordernumber
(
OId int identity(1,1) priMary key,--编号表主键自增
Onumber nvarchar(25) --订单编号
)
实现思路:
  1. 得到当前时间—格式(YymMDD);                    
  2. 将所得时间插入数据库后,获得该条记录ID;@H_801_7@
  3. 修改这条记录为时间+ID最为订单编号;
这样就能得到唯一订单编号
具体存储过程如下:
create proc TBL_Ordernumber_Getordernumber
as
declare @id char(10)
insert into TBL_Ordernumber values((SELEct Convert(varchar(10),Getdate(),112)))
set @id =(SELECT ScopE_IDENTITY())
update TBL_Ordernumber set Onumber=Onumber+@id where OId = (SELECT ScopE_IDENTITY())
Go
备注:sqlServer中正确获得刚插入一条新记录的自动ID号有@@IDENTITY、ScopE_IDENTITY ()但是经测试在典型的级联应用中@@IDENTITY,在CII850,256M SD的机器上1W多行时就会并发冲突.在P42.8C,512M DDR上,才6000多行时就并发冲突而ScopE_IDENTITY()是绝对可靠的,可以用在存储过程中,连触发器也不用建,没并发冲突
理论上这一方法所生成的订单编号是唯一的,但本人没有进行并发测试。性能上感觉也并不是良好,暂时先用着(功能实现比什么都强),待功力加深还是前台实现这一功能才是王道之举

大佬总结

以上是大佬教程为你收集整理的SQLServer中自动生成唯一订单编号全部内容,希望文章能够帮你解决SQLServer中自动生成唯一订单编号所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: