码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-26 10:52:26      阅读:159      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!