--以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号。
--创建得到当前日期的视图
CREATE VIEW v_GetDate
AS
SELECT dt=CONVERT(CHAR(6),GETDATE(),12)
GO
--得到新编号的函数
CREATE FUNCTION f_NextBH()
RETURNS char(12)
AS
BEGIN
DECLARE @dt CHAR(6)
SELECT @dt=dt FROM v_GetDate
RETURN( SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK) WHERE BH like @dt+'%')
END
GO
--在表中应用函数
CREATE TABLE tb(
BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(),
col int
)
--插入资料
INSERT tb(col) VALUES(1)
INSERT tb(col) VALUES(2)
INSERT tb(col) VALUES(3)
DELETE tb WHERE col=3
INSERT tb(col) VALUES(4)
INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
--显示结果
SELECT * FROM tb
/*--结果BH col
------------------- -----------
050405000001 1
050405000002 2
050405000003 4
050405000004 14
--*/
原文:http://hi.baidu.com/cxl_goto/blog/item/c6a7ae189bb9de0f34fa4179.html
<script></script>
分享到:
相关推荐
在本节中,我们将介绍如何实现自动生成流水号的14位编号,其中前8位为当前日期(日期格式:YYYYMMDD),后6位为流水号。 什么是流水号? 流水号是一种唯一的编号,通常用于标识一个实体或记录。流水号的长度可以...
这段代码主要实现了在C#中自动生成带有日期的流水号的功能。流水号通常用于标识唯一性记录,例如订单编号、文档编号等。该代码通过结合当前日期与递增的序列号来生成唯一的流水号。 #### 二、关键代码分析 ##### 1...
在网上搜了半天,都没有看到满意的程序。只好参照别人写的例子,自己写了。编号是按照年份和月份+三位序号自动生成的,用的是SQL server数据库,用VS2010编写的。调试已通过。希望给同为新手的各位一个参考。
//生成最大编号 规则为当前日期+6位顺番, //没有记录时,当前日期+000001 //当前日期比从数据库取得的最大日期大时, 当前日期+000001 //当前日期等于从数据库取得最大日期,顺番+1
例如流水号的格式为:单据前缀+业务日期+几位顺序编号.知道了流水号的固定格式,设计流水号就非常方便了.在SqlServer中,可以通过客户端程序来生成新的流水号,也可以利用存储过程来生成.在实际的项目中,利用自定义函数...
SQL Server 中按年月日生成日期型自增编码 本文档介绍了在 SQL Server 中生成日期型自增编码的方法,通过创建两个函数 `GenCustomCode` 和 `GenCustomID`,可以生成按年月日的日期型自增编码。该方法可以应用于各种...
总结来说,金蝶K3 Wise通过SQL语句调用特定的存储过程,实现了单据编号和单据内码的自动生成。这对于保证单据的一致性和完整性至关重要,同时也提高了业务处理的效率。在实际操作中,需要根据企业的具体业务需求和...
/// 根据时间生成流水号 /// 流水号组成如XS200811050001 /// XS:销售 /// 20081105:日期 /// 0001:20081105日的第一个订单 /// /// <returns></returns> private string GetNumberString() { string ...
java自动生成编号的实现(格式:yyMM+四位流水号) java自动生成编号的实现是指通过java语言生成一个唯一的编号,格式为yyMM+四位流水号。在实际应用中,自动生成编号可以应用于各种场景,如订单编号、用户编号、物流...
本文将详细介绍如何在Microsoft Access中实现一个自动编号功能,该功能能够根据指定的前缀、当前日期以及连续递增的流水号生成唯一的编号。 #### 二、核心知识点解析 ##### 2.1 类结构与功能概述 本文提供的代码...
这种方法能够生成连续的流水号编码,但可能会在多用户同时操作时产生冲突。为了避免这种冲突,可以在保存之前进行检查或使用其他机制确保唯一性。 ### SQL存储过程应用 存储过程`PWMS_GetMaxNo`的具体实现未在代码...
如`tsValue`用于存储流水号当前值,`tdToday`用于存储流水号中的日期部分,`nowdate`用于获取当前系统日期的年月部分,`tsQZ`用于存储流水号前缀,以及一个错误标志`t_error`用于处理可能出现的SQL异常。 接着,...
`fn_no_make` 函数就是一个用PL/SQL编写的示例,专门用于生成带有特定前缀、日期和顺序编号的流水号。 首先,我们来详细解析这个函数的结构和逻辑: 1. **参数定义**: - `v_prefix`:字符串类型,表示流水号的...
而“格式”则可能指的是编号的展示方式,比如年份+月份+流水号,或者是简单的数字序列。这种编号方式可以提供一种有序且易于理解的标识符,便于数据管理和查询。 实现这一功能有多种方法: 1. **数据库自增字段**...
│ 日期流水号.sql │ 材料流水号.sql │ 流水号.sql │ 箱编号连号处理.sql │ 类别自动生成编号示例.sql │ 自已做标识列的例子.sql │ 触发器自动维护已用&未用编号.sql │ 连续编号.sql │ 防止重复的示例.sql ...
学号.sql │ 开票统计--涉及到连号处理.sql │ 新编号查询示例(分类查询).sql │ 新编号查询示例.sql │ 日期流水号.sql │ 材料流水号.sql │ 流水号.sql │ 箱编号连号处理.sql ...
项目编号由"PJ-客户编号-日期-流水号"组成,流水号根据不同的客户进行计数,确保每个客户项目的编号从1开始。 触发器的工作流程如下: - 获取新插入的项目记录的客户编号和GUID。 - 计算流水号,对于每个新客户从1...
4. **流水编号**:ROW_NUMBER()函数常用于生成连续的流水号,结合OVER()和PARTITION BY子句可以实现分组内的序列号,常用于分页或主键生成。 5. **树形数据与宝塔形数据**:在SQL Server中,递归查询(WITH语句的...
总结来说,小系统单据自动生成存储过程是通过SQL存储过程实现的,它可以高效地生成具有日期和流水号的唯一订单编号。两种判断方法各有优劣,第一种需要用户输入日期信息,第二种则自动根据创建日期判断,更方便但对...