zoukankan      html  css  js  c++  java
  • 用存储过程生成记录编号

     

    CREATE procedure up_GetBeautifulOrderNumber(@orderNumber char(12) out)
    as
    begin
    declare @number char(11)--编号的后11位
    declare @maxDate decimal--从数据库表中当前最大的编号中取出的日期
    declare @currentDate decimal    --当前日期
    declare @currentNumber char(12--数据库表中当前最大的编号
    declare @day char(2--当前日期,如果是一位数,需要将其转换为两位数
    set @day=(select case len(datename(d,getdate())) 
     
    when 1 then '0'+ cast(datename(d,getdate()) as char(1))
     
    when 2 then cast(datename(d,getdate()) as char(2)) end)
    set @currentDate=cast((datename(yyyy,getdate())+datename(mm,getdate())+ @dayas decimal)
    if not exists(select top 1 OrderID from Orders order by OrderID desc)
    begin
     
    set @number=cast((@currentDate *1000as char(11))
    end
    else 
    begin
      
    set @currentNumber=(select top 1 OrderID from Orders order by OrderID desc)
      
    set @maxDate=cast(substring(@currentNumber2,8as decimal)
      
    if @maxDate<@currentDate 
        
    begin
     
    set @number=cast(@currentDate *1000 as char(11))
        
    end
      
    else if @maxDate=@currentDate
        
    begin
     
    set @number=cast((cast(substring(@currentNumber,2,12as decimal)+1as char(11))
        
    end
      
    else 
        
    begin
     
    print @maxDate
     
    declare @errMessage varchar(100)
     
    set @errMessage=cast(@maxDate as char(10))+ '错误,数据库表中纪录的最大日期有错误,请与数据库管理员联系。'
     
    raiserror(@errMessage161
        
    end
    end
       
    set @orderNumber='B'+@number
    end 
  • 相关阅读:
    Nginx——基本操作
    JavaWeb——关于RequestDispatcher的原理
    JavaWeb——XML转义符字
    JavaWeb——JSTL 核心标签库使用
    JavaWeb——jsp-config
    URL和URI区别
    Docker入门5------生产力工具docker-compose
    Docker入门4------Dockerfile
    Docker入门3------手动编辑自定义镜像
    Docker入门2------容器container常规操作
  • 原文地址:https://www.cnblogs.com/jiangshaofen/p/711772.html
Copyright © 2011-2022 走看看