mssql server产生"日期+流水号"这样唯一的定单号

原创 2006年06月09日 21:49:00

   现在大部分的定单编号都是采用"日期+流水号"这样的格式,如:

“CGD20060203-0001”“CGD2006-06-09-0001”

“CGD2006-06-09-0002”“CGD2006-06-10-0001”

刚好我们要做一个汽车销售管理系统,里面有采购定单,销售定单需要采用这种格式,在论坛中各位兄弟的帮助下我是这样实现的:

1。创建一个表sequence记录定单时间和流水号.表结构如下:

sequence(currenttime,CGDH,XSDH)

2。编写存储过程,返回采购单号:

 CREATE    proc addCgOrder
@orderNum varchar(20) output
as
declare @maxtime datetime
declare @lsh varchar(10)
set @maxtime =(select top 1 currenttime  from sequence )
if(datediff( day,@maxtime,getdate())>=1)//------新的一天,更新时间和单号
begin
select @maxtime
update sequence
set currenttime=getdate(),cgdh=10001,xsdh=10001
end
else//---------------一天内的单,只更新相应的流水号
begin
update sequence
set cgdh=cgdh+1
end
select  top 1 @lsh=cgdh ,@maxtime=currenttime from sequence
set @orderNum='CGD'+convert(varchar(30),@maxtime,12)+'-'+right(@lsh,4)
GO

大致过程描述如下:

1。根据当前时间和sequence表中的时间判断是否是一天内的第一张单。

是则:更新sequence表中的时间为当前时间,流水号为1000001(为了转换成string截取方便整体+1000000)

不是则:相应的流水号+1

2。组织定单编号,放入输出参数中

3。对于销售定单我们也需要编写一个类似的procude

说明:我大体上就是这么实现的,希望对某些人有点帮助。本来想把他弄成一个函数 的,但是好想在mssql server函数中不能够更新表,所以没有实现。还希望大家多多指教!

 

相关文章推荐

MSSQL Server的连接问题分析和解决(2)

再来看一个连接错误,如下图1所示:       图中是从本地Serv连接异地Serv做DTS包迁移时的错误提示,本地Serv是SQL2008,而异地Serv是SQL2000。 一、从图中获得...
  • yw1688
  • yw1688
  • 2015年08月24日 10:16
  • 281

MSSql Server基础学习系列———数据约束

数据约束在数据库中广泛存在 目的:保证数据库的完整性 说白了就是保证数据库中的数据是正确的,但是也带了坏处,那就是性能的下降 --主键约束(PK) --主键值唯一,并且不能为空 --sql脚本语言...

MSSql Server基础学习系列———索引

MSSql Server 对于那些未建立索引的表格数据的检索是从第一行开始,从上往下,一条一条的检索。如果我们程序中经常要用到查询操作,而且数据库中的数据量很庞大,毫无疑问,每次的数据查询都会比较浪费...

ubuntu 配置PHP通过PDO unixODBC 连接 MSSQL Server 2005

ubuntu 配置PHP通过PDO unixODBC 连接 MSSQL Server 2005 linuxpost by 烟花笑 on2011-4-12 14:41 Tuesday ub...
  • samxx8
  • samxx8
  • 2011年08月03日 15:16
  • 2520

PHP5.3.5如何连接MSSql Server

windows系统下,PHP5.3以上的版本已经不支持mssql扩展,所以如果你需要和sql server通信需要到http://msdn.microsoft.com/en-us/sqlserver/...

MSSql Server基础学习系列———数据添加

上一篇文章讲解了如果进行数据库数据的检索,今天就接着讲如何进行数据库数据的添加 --不建议使用 --如果后期数据库的表结构发生改变,会因为没未改字段赋值而报错 --插入日期字段的时候 要把时间当成一...

Sharp-ORM 2007 (1.2) for MSSQL Server

  • 2007年04月16日 10:24
  • 226KB
  • 下载

Access分页及效率分析(MSSQL Server、Oracle分页)

在实际过运用过程中,我们开发的项目有时需要支持多种数据库,那么在开发中我们会遇到不同的数据库在SQL语句方面还有区别,导致我们有些细节需要去调整,下面就分页功能在不同的数据库中的具体使用详细说明。 ...

MSSQL Server 管理器 V2.0

  • 2017年04月06日 09:28
  • 1.8MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mssql server产生"日期+流水号"这样唯一的定单号
举报原因:
原因补充:

(最多只允许输入30个字)