利用SQL存储过程生成程序编号的一种方法(转)
2007-06-12 11:43
609 查看
在程序设计中,尤其是针对企业应用的开发,不可以避免的会要生成大量的编号,比如订单编号、入库编号等。现在利用SQL的存储过程可以方便的实现自动编号,可以大大的提高程序的复用和减少代码的编写。
主要是利用SQL中的CONVERT函数来对日期进行格式化。
比如要做这样的一个编号结构:
标识(2位) 日期时间(14位) 流水号(4位)
BH 20070227160954 1001
程序代码如下:
DECLARE @myval nvarchar(20),
@maxval nvarchar(4)
select @maxval=max(right(InEquipNum,4))+1 from InEquip --InEquipNum 为编号字段,取最后4位并加1
set @myval=CONVERT(varchar(12), getdate(),112)+ --取日期组合
(substring(convert(varchar(20),getdate(),120),12,2)) + --取小时
(substring(convert(varchar(20),getdate(),120),15,2)) + --取分钟
(substring(convert(varchar(12),getdate(),108),7,2)) + --取秒
(select case
when @maxval is null then '1000' --如果编号为空,则先给出一个值
else @maxval
end
)
select @myval 编号
运行后结果如:BH200702271609541001
附CONVERT函数使用说明:
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
主要是利用SQL中的CONVERT函数来对日期进行格式化。
比如要做这样的一个编号结构:
标识(2位) 日期时间(14位) 流水号(4位)
BH 20070227160954 1001
程序代码如下:
DECLARE @myval nvarchar(20),
@maxval nvarchar(4)
select @maxval=max(right(InEquipNum,4))+1 from InEquip --InEquipNum 为编号字段,取最后4位并加1
set @myval=CONVERT(varchar(12), getdate(),112)+ --取日期组合
(substring(convert(varchar(20),getdate(),120),12,2)) + --取小时
(substring(convert(varchar(20),getdate(),120),15,2)) + --取分钟
(substring(convert(varchar(12),getdate(),108),7,2)) + --取秒
(select case
when @maxval is null then '1000' --如果编号为空,则先给出一个值
else @maxval
end
)
select @myval 编号
运行后结果如:BH200702271609541001
附CONVERT函数使用说明:
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
相关文章推荐
- 利用SQL存储过程生成程序编号的一种方法
- 利用SQL存储过程生成程序编号的一种方法
- 利用SQL存储过程生成程序编号的一种方法
- 利用SQL存储过程生成程序编号的一种方法
- 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍
- 动态生成SQL的存储过程,以及调用方法
- 生成唯一编号(序列号)--sql存储过程
- 利用存储过程实现交叉表格式数据查询的一种通用方法
- 利用存储过程实现交叉表格式数据查询的一种通用方法
- java程序调用存储过程得到新增加记录的id号的方法
- SQL SERVER 2008存储过程生成编号,JDBC调用
- Sql server中根据存储过程中的部分信息查找存储过程名称的方法【视图和Function】
- 在PL/SQL 开发中调试存储过程和函数的一般性方法
- SQL 生成商品订单的存储过程 ,ADO.NET调用存储过程
- 破解SQL Server加密的存储过程的方法(含 sql 2000与sql 2005版)
- SQL Server中获得EXEC后面的sql语句或者存储过程的返回值的方法
- 利用SQL未公开的存储过程实现分页
- 如何查看存储过程中动态生成的sql
- Ruby on Rails中执行存储过程和指定SQL语句的方法
- 修改后的SQL分页存储过程,利用2分法,支持排序