首页 > 其他 > 详细

为产品或者商品随机生成6位数的数字编码方案

时间:2015-05-26 10:49:29      阅读:335      评论:0      收藏:0      [点我收藏+]
--为产品或者商品随机生成6位数的数字编码方案
--准备阶段
--建立一个表,生成100000到999999顺序编码
create table #no
(
 id int
)
declare @id int 
set @id=1
while(@id<=999999)
begin
 insert into #no values(@id)
 set @id=@id+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 id=@pid) where ProductId=@pid
--检查结果
select * from Product

--ProductId   ProductNO   ProductName
----------- ----------- ----------------------------------------------------------------------------------------------------
--1           782264      土豆
--(1 行受影响)


本文出自 “石头” 博客,请务必保留此出处http://oswica.blog.51cto.com/756561/1655141

为产品或者商品随机生成6位数的数字编码方案

原文:http://oswica.blog.51cto.com/756561/1655141

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!