系统测试时批量生成模拟数据,通过存储函数生成唯一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
beginreturn replace(replace(replace(replace(convert(varchar,@dateCurrent,121),'-',''),':',''),'.',''),' ','');
endgo--调用示例(单次),如果在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 效果:
根据随机数生成唯一ID(17位)
完整代码:http://www.laobingbiji.com/page/202404021719190000000010349752.html