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