SQL Server 存储函数(funGetId):唯一ID

文章介绍了如何在系统测试中使用SQLServer创建一个自定义函数funGetId,通过当前时间生成17位唯一ID,以及如何在高并发场景下避免ID重复。
摘要由CSDN通过智能技术生成

系统测试时批量生成模拟数据,通过存储函数生成唯一ID。

根据当前时间生成唯一ID(17位)

--自定义函数:根据当前时间组合成一个唯一ID字符串:year+month+day+hour+minute+second+millisecond
drop function funGetId;

go

--自定义函数:根据当前时间组合成一个唯一ID字符串:year+month+day+hour+minute+second+millisecond
create function funGetId(@dateCurrent datetime) returns varchar(20)
as
begin
  return replace(replace(replace(replace(convert(varchar,@dateCurrent,121),'-',''),':',''),'.',''),' ','');
end

go

--调用示例(单次),如果在insert中引用时可以直接使用dbo.funGetId(getdate()),在使用时前面必须是dbo.函数名
select dbo.funGetId(getdate());
go

--调用示例(多次),如果在insert中引用时可以直接使用dbo.funGetId(getdate()),在使用时前面必须是dbo.函数名
--引入延迟,防止多次调用ID重复(高并发性影响性能)
select dbo.funGetId(getdate());

waitfor delay '00:00:00.010';

select dbo.funGetId(getdate());

waitfor delay '00:00:00.010';

select dbo.funGetId(getdate());

ID 效果:
image.png

根据随机数生成唯一ID(17位)

完整代码:http://www.laobingbiji.com/page/202404021719190000000010349752.html

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值