用存储过程生成订单号ID

DECLARE @sonumber BIGINT
SELECT @sonumber=CONVERT(BIGINT, @serverId + Substring(CONVERT(VARCHAR(4),
Datepart(yy, Getdate())), 4, 1) +
Substring(CONVERT(VARCHAR(10), Getdate(),12),3,6) + CONVERT(VARCHAR(100),
CAST( Rand()*(999999 -100000)+100000 AS DECIMAL( 38, 0))))

SELECT @sonumber AS id

可以用一个表去维护,当生成一个ID后再去这个表看看存不存在,如果意外的已经存在了,那再执行一下上面的方法,重新生成一个,估计再重复的几率已经很小很小了...

原文地址:https://www.cnblogs.com/cr7/p/3160956.html