--为产品或者商品随机生成6位数的数字编码方案 --准备阶段 --建立一个表,生成100000到999999顺序编码 create table #no ( id int ) declare @id int set @id=1 while(@id<=999999) begin insert into #no values(@id) set @[email protected]+1 end --建立随机编码表 create table RNo ( id int identity(1,1), no int ) --插入随机内容 insert into RNo(no) select id from #no order by NEWID() --模拟商品表 create table Product ( ProductId int identity(1,1), ProductNO int --其他字段 ) --插入产品表的时候,通过产品表的自增ID读取对应的随机数字编码更新到产品表即可实现随机的编码生成。 --避免了程序生成随机编码引起的2个小问题 --1.每次生成都要做重复检查 --2.后期随机编码容易重复,要继续随机生成。 --存在一个问题就是一旦删除产品后,编码将不能被再次使用。 declare @pid int insert into Product(ProductName) values(‘土豆‘) select @pid=SCOPE_IDENTITY() --这里注意需要检查 rno 是否大于 999999 ,如果不够了 需要继续生成新的编码(增位了) update Product set ProductNO=(select no from rno where [email protected]) where [email protected] --检查结果 select * from Product --ProductId ProductNO ProductName ----------- ----------- ---------------------------------------------------------------------------------------------------- --1 782264 土豆 --(1 行受影响)
时间: 2024-10-13 10:07:31