zoukankan      html  css  js  c++  java
  • 自动为指定表的指定字段生成编号的存储过程

     

    --根据日期自动生成编号
    --
    格式:20070517000001
    create  procedure sp_BuildNumber(
        
    @length int,                --日期后面的编号长度
        @fieldname nvarchar(20),    --字段名称
        @tablename nvarchar(20),    --表名称
        @return nvarchar(20) output    --输出变量
    )
    as
        
    begin
            
    declare @sql nvarchar(2000)
            
    set @sql='
                declare @nowdate nvarchar(10)
                declare @mincoding nvarchar(20)
                declare @coding nvarchar(20)
            
                set @nowdate=convert(nvarchar(10),getdate(),120)
                set @nowdate=replace(@nowdate,
    ''-'','''')
            
                set @mincoding=@nowdate+replicate(
    ''0'',@length-1)+''0''
                
                select @coding=isnull(max(
    '+@fieldname+'),@mincoding) from '+@tablename+' where '+@fieldname+' like @nowdate+''%''
                
                set @return=convert(nvarchar,convert(numeric(18,0),@coding)+1)
            
    '

            
    exec sp_executesql @sql,N'@length int,@return nvarchar(20) output',@length,@return output
        
    end

    GO

    调用例子(订单编号):
    declare @number nvarchar(20)
    exec sp_BuildNumber 6,'OrderNumber','Orders',@number output

    可根据需要更改输出格式。
  • 相关阅读:
    10. 王道考研-树与二叉树
    Shell基础论证实例
    关系型数据库与非关系型数据库区别
    中高级测试工程师面试题
    idea中cucumber环境搭建
    Java开发中对Redis的基本操作总结
    TestNG 单元测试框架(针对于testNG.xml配置)
    jmeter(四十五)常用Beanshell脚本
    Jmeter(二十一)_脚本两种参数化
    Jmeter(十五)_上传与下载
  • 原文地址:https://www.cnblogs.com/lyout/p/749924.html
Copyright © 2011-2022 走看看