zoukankan      html  css  js  c++  java
  • SQL SERVER存储过程生成字母+数字的编码

      公司内设备管理系统中设备建账功能,功能目的是对新进设备进行记录并入库。其中设备编号一项定义为自己修改(查看之前的设备号,取一个不重复的值来填写),感觉特别麻烦!用存储过程自动生成编码岂不是更效率。

       需求:根据设备组代码(PC)+递增数字,构成编码,编码中数字必须为三位数,无三位数的,以‘0’占位。

        代码如下: 

     1 --测试数据库准备
     2 use master
     3 go
     4 if exists(select * from dbo.sysdatabases where name='hzf')
     5 drop database hzf
     6 go
     7 create database hzf
     8 go
     9 use hzf
    10 go
    11 --创建测试表
    12 ALTER proc [dbo].[get_new_id] 
    13     @new_id varchar(16) output,    --生产的编号
    14     @number int,                --设置编码数字的最大位数
    15     @group varchar(5)            --编号字母
    16 as
    17 begin
    18  
    19     set @new_id = null
    20      
    21     select top 1 @new_id = ID from test_id where id like @group+'%' order by convert(int,RIGHT(id,LEN(id)-len(@group)) ) desc
    22      
    23     if @new_id is null
    24         set @new_id = @group+REPLICATE('0',2)+'1'
    25     else
    26         begin
    27             declare @big varchar(16)
    28             set @big = convert(int, RIGHT(@new_id,LEN(@new_id)-len(@group)) )+1 
    29             if @big <100
    30             begin
    31                 set @big = REPLICATE('0',3-LEN(@big)) + @big
    32             end
    33             set @new_id = @group + @big 
    34         end
    35      
    36  
    37 end
    38  
    39 GO
    40  
    41 --测试
    42 declare @test int
    43 set @test=1
    44 while(@test<=20)
    45 begin
    46     declare @new_id    varchar(14)
    47     exec get_new_id @new_id output,7,'PC'
    48     insert into test_id values(@new_id)
    49     set @test = @test+1
    50 end
    51 select * from test_id

     

  • 相关阅读:
    人工神经网络(Artificial Neural Networks)
    潜语义分析(Latent Semantic Analysis)
    IOS Dictionary和Model相互转换
    jquery ajax跨域请求webservice
    日期格式转换
    1
    iptables详解
    yum报错-Network is unreachable"Error:
    41个Web开发者JavaScript实用小技巧
    比较常用的几个maven第三方镜像
  • 原文地址:https://www.cnblogs.com/wshzf/p/3741661.html
Copyright © 2011-2022 走看看