sql,13位条码,存储过程
create proc to13code
@tempstr varchar(12),
@tempcode varchar(13) output
as
declare @a1 int,@a2 int,@a3 int,@a4 int,@a5 int,@a6 int,@a7 int,@a8 int,@a9 int,@a10 int,@a11 int,@a12 int
declare @b1 int,@b2 int,@b3 int
declare @str varchar(2)
set @str=substring(@tempstr,1,1)
set @a1=convert(bigint, @str)
set @str=substring(@tempstr,2,1)
set @a2=convert(bigint,@str)
set @str=substring(@tempstr,3,1)
set @a3=convert(bigint,@str)
set @str=substring(@tempstr,4,1)
set @a4=convert(bigint,@str)
set @str=substring(@tempstr,5,1)
set @a5=convert(bigint,@str)
set @str=substring(@tempstr,6,1)
set @a6=convert(bigint,@str)
set @str=substring(@tempstr,7,1)
set @a7=convert(bigint,@str)
set @str=substring(@tempstr,8,1)
set @a8=convert(bigint,@str)
set @str=substring(@tempstr,9,1)
set @a9=convert(bigint,@str)
set @str=substring(@tempstr,10,1)
set @a10=convert(bigint,@str)
set @str=substring(@tempstr,11,1)
set @a11=convert(bigint,@str)
set @str=substring(@tempstr,12,1)
set @a12=convert(bigint,@str)
set @b1=@a1+@a3+@a5+@a7+@a11+@a9
print @b1
set @b2=@a2+@a4+@a6+@a8+@a10+@a12
print @b2
set @b2=@b2 *3
set @b3=(@b1+@b2) % 10
print @b3
set @b3=10-@b3
print @tempstr+convert(varchar(10),@b3)
set @tempcode=@tempstr
return @tempcode