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())+ @day) as decimal)
if not exists(select top 1 OrderID from Orders order by OrderID desc)
begin
 set @number=cast((@currentDate *1000) as char(11))
end
else 
begin
  set @currentNumber=(select top 1 OrderID from Orders order by OrderID desc)
  set @maxDate=cast(substring(@currentNumber, 2,8) as 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,12) as decimal)+1) as char(11))
    end
  else 
    begin
 print @maxDate
 declare @errMessage varchar(100)
 set @errMessage=cast(@maxDate as char(10))+ '错误,数据库表中纪录的最大日期有错误,请与数据库管理员联系。'
 raiserror(@errMessage, 16, 1) 
    end
end
   set @orderNumber='B'+@number
end 

转载于:https://www.cnblogs.com/jiangshaofen/archive/2007/04/13/711772.html

用存储过程生成记录编号相关推荐

  1. mysql 存储订单,MySQL使用存储过程生成订单编号

    生成的订单编号类似: CREATE DEFINER=`root`@`%` PROCEDURE `p`(IN table_name varchar(50),IN filed_name varchar(5 ...

  2. oracle存储过程生成单号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 CREATE OR REPLACE procedure ...

  3. oracle存储过程插入自动编号,Oracle生成单据编号存储过程的实例代码

    Oracle生成单据编号存储过程,在做订单类似的系统都可能会存在订单编号不重复,或是流水号按日,按年,按月进行重新编号. 可以参考以下存储过程 0 then if DIsAutoCreate=1 TH ...

  4. 【SQL Server】性能优化-数据准备:使用存储过程生成百万数据

    性能优化-数据准备:使用存储过程生成百万测试数据 1 概述 2 创建数据库 3 建表 4 创建存储过程 4.1 创建存储过程-学生表 4.1 创建存储过程-班级表 4.1 创建存储过程-课程表 4.1 ...

  5. asp按时间自动递增编号_Java秒杀系统实战系列-分布式唯一ID生成订单编号

    本文是"Java秒杀系统实战系列文章"的第七篇,在本文中我们将重点介绍 "在高并发,如秒杀的业务场景下如何生成全局唯一.趋势递增的订单编号",我们将介绍两种方法 ...

  6. sql server 按照日期自动生成单据编号的函数

    一.sql server 按照日期自动生成单据编号的函数,格式为##08080001,##表示打头的单据字符,然后是年月和流水编号. 二.传入的参数为单据的打头字符和生成单据的日期 三.一般的调用格式 ...

  7. Java秒杀系统实战系列~分布式唯一ID生成订单编号

    摘要: 本篇博文是"Java秒杀系统实战系列文章"的第七篇,在本博文中我们将重点介绍 "在高并发,如秒杀的业务场景下如何生成全局唯一.趋势递增的订单编号",我们 ...

  8. java 唯一编号_Java秒杀系统实战系列~分布式唯一ID生成订单编号

    摘要: 本篇博文是"Java秒杀系统实战系列文章"的第七篇,在本博文中我们将重点介绍 "在高并发,如秒杀的业务场景下如何生成全局唯一.趋势递增的订单编号",我们 ...

  9. websocket中自动生成身份编号(获取sessionID,将sid值设置为sessionID的方法),并在页面刷新时沿用sid的解决方案

    websocket如果需要1对1通信,或者说将服务器数据发送到指定的客户端上,就需要给每一个新生成的websocket加上编号.比较常见的,是在地址映射中加上编号,比如: @ServerEndpoin ...

最新文章

  1. .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
  2. 监测ASP.NET MVC 网站
  3. 每日站立例会01,02,03
  4. NetScaler SDWAN 的前世今生
  5. php postgresql mysql_PostgreSQL与MySQL比较(转)
  6. Bailian2737 大整数除法【大数】
  7. vue set方法_Vue 数据响应式
  8. hdoj1116【欧拉回路】
  9. 进程间通讯:实现基于多进程的文件拷贝
  10. Shopee 店铺如何运营?运营思路心得分享
  11. CSND博客☞盘码之路开始
  12. 车载前视摄像头学习笔记 ———— 环境影响
  13. 【平面设计】ACDSee 10.0 软件安装教程
  14. 是香蕉还是芭蕉,芭蕉和香蕉的区别
  15. 美面魔心伊莉丝:会有蜘蛛之神制裁你
  16. 十五、Events类
  17. 《人类简史》笔记二——一场永远的革命
  18. echats 柱状图的点击事件及高亮
  19. C/C++实现矩阵各种运算
  20. 子、辰、卯、酉、午、辰时是几点到几点钟「知识普及」

热门文章

  1. 008_Maven Eclipse
  2. java panel 左对齐,将Shape的中心与JPanel的中心对齐 - java
  3. mysql什么格式转换_MySQL日期格式转换
  4. python3编码和解码_python3的url编码和解码,自定义gbk、utf-8的例子
  5. Android应用开发:数据存储和界面展现-1
  6. 轴等比缩放_CAD教程:自由缩放命令的操作流程
  7. python登录系统的实现方法_python实现用户登录系统
  8. python速度比较_Python和C运算速度对比实测
  9. cmake交叉编译android,CMake Android 交叉编译
  10. 计算机科普知识主题,科普知识3