`
yky1984
  • 浏览: 38726 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库自动生成自定义订单号

阅读更多

SQL  Server数据库自动生成自定义订单号

/*以下代码生成的编号长度为14,前6位为日期信息,格式为YYYYMMDD,后6位为流水号。创建得到当前日期的视图,因为在用户定义函数不能使用不确定函数,而getdate就是不确定函数,必须建立一个视图才能获得getdate的值。*/
CREATE VIEW dbo.v_GetDate
AS
SELECT CONVERT(CHAR(8), GETDATE(), 112) AS dt

//创建SQL Server数据库中的自定义函数
CREATE FUNCTION f_NextBH()
RETURNS char(14)
AS
BEGIN
        DECLARE @dt CHAR(8)
        SELECT @dt=dt FROM v_GetDate
        RETURN(
                SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) 
                FROM test_orderid  WITH(XLOCK,PAGLOCK)
                WHERE BH like @dt+'%')
END

//测试表中应用自定义函数
CREATE TABLE tb(
BH char(14) PRIMARY KEY DEFAULT dbo.f_NextBH(),
col int)

  

 

access数据库自动生成自定义订单号(access中的模块自定义函数)

'生成订单序号---格式20090630000001(年月日+6位的流水号)
Function nextBH()
    Dim strResult, temp
    strResult = ""
    temp = "000001"
    Dim thedb As Database
    Set thedb = DBEngine.Workspaces(0).Databases(0)
    SQL1 = "select count(BH) AS bhCount from testOrderId  WHERE BH like '" & Format(Date, "yyyymmdd") & "*'"
    SQL2 = "select MAX(BH) AS MaxBH from testOrderId  WHERE BH like '" & Format(Date, "yyyymmdd") & "*'"
    Set rs1 = thedb.OpenRecordset(SQL1)
    If Not rs1.EOF Then                     '先查找当天是否有流水号
        If rs1.Fields("bhCount") > 0 Then
            Set rs2 = thedb.OpenRecordset(SQL2)
            If Not rs2.EOF Then             '从数据库中得到当天的流水号的最大值
                strResult = Format(Date, "yyyymmdd") & Right((CLng("1000001") + Right(temp, 6)), 6)  '流水号加1后从右截取6位字符串
            End If
        Else
        strResult = Format(Date, "yyyymmdd") & "000001"
        End If
    End If
    nextBH = strResult
End Function
使用方法:INSERT INTO testOrderId ( BH, description ) VALUES (nextBH(), '1118'); 

 

分享到:
评论

相关推荐

    订单号生成工具类

    同时,可以考虑提供配置项,允许用户自定义订单号的格式和生成策略。 8. **最佳实践**:在实际应用中,可以参考业界的成熟解决方案,如雪花算法(Snowflake)、UUID、Redis序列号生成等。这些方案已经在很多大型...

    c#后台生成不重复的订单号及后台存储过程

    根据提供的标题、描述、标签以及部分内容,我们可以详细探讨与C#后台生成不重复的订单号相关的知识点,包括但不限于代码实现细节、SQL存储过程的应用、枚举类型的选择等。 ### C#后端生成订单号 #### 枚举类型定义...

    magento插件-将订单号改为日期流水号

    4. **数据库交互**:为了保持订单号的唯一性,可能需要在数据库中添加额外的记录或索引来跟踪当前流水号。 5. **后台配置**:插件应该提供后台配置选项,允许管理员选择是否启用此功能,以及自定义日期格式和流水号...

    C#如何生成唯一订单号

    在C#编程中,生成唯一的订单号是许多业务系统中的常见需求,这通常涉及到数据库操作、并发控制以及数据完整性。本文将深入探讨如何在C#中实现这一功能,特别是使用提供的代码实例。 首先,让我们理解生成唯一订单号...

    magento订单号修改

    安装此模块可以让你自定义订单号的初始数字,同时可能支持设置前缀和后缀。安装步骤通常包括解压模块文件到Magento的根目录,然后通过命令行运行`php bin/magento setup:upgrade`来安装和激活模块。 对于`package....

    PHP数据生成器数据库工具

    根据压缩包文件名 "yeosz-dtool-de5f12d",我们可以推测这可能是该工具的一个特定版本或分支,其中"Dtool"可能是该数据库工具的简称,而"de5f12d"可能是版本号或Git提交哈希值,用于追踪代码版本。 在使用PHP数据...

    用JS实现根据当前时间随机生成流水号或者订单号

    在当前互联网环境下,为了确保每一笔交易都有一个唯一的标识,生成流水号或订单号是必不可少的环节。流水号与订单号的区别主要在于用途不同,流水号一般用于系统内部管理,而订单号是面向客户的,便于用户查询和确认...

    .NET 流水号的生成源代码(附:数据库)

    .NET框架在开发过程中,经常会遇到需要生成唯一标识或者流水号的需求,这在诸如订单系统、日志记录或者用户账户管理等场景中尤为重要。本资源提供了一种.NET平台下生成流水号的源代码实现,同时也结合了SQL Server...

    PHP医院订单自动生成系统201606021047.rar

    【PHP医院订单自动生成系统201606021047.rar】是一个针对医疗行业的订单管理系统,主要用于帮助医院自动化处理订单流程。这个系统是基于PHP编程语言开发的,PHP是一种广泛应用的开源脚本语言,尤其在Web开发领域具有...

    序号自动生成器.zip

    随着使用频率的增加,其创造的价值也会逐步显现,尤其在批量生成订单号、工单号或会员编号等场景下,能够显著提升业务流程的自动化程度。 总之,“序号自动生成器”是一个具有广泛适用性的工具,结合C#的强大功能,...

    C#实现在购物车系统中生成不重复订单号的方法

    在C#中实现这一功能,通常会结合时间戳和其他自定义信息,以保证生成的订单号在大量并发请求下也不会出现重复。下面将详细介绍如何在C#中实现这一功能,以及涉及到的时间与字符串操作技巧。 首先,订单号通常由两...

    一套客户定做的订单程序,自动生成打印格式(OA)

    本套定制化的订单程序,特别设计了自动生成打印格式的功能,极大地提升了工作效率和数据准确性。OA(Office Automation)通常指的是办公自动化系统,此处可能是强调该程序能够与办公环境无缝集成,实现自动化的工作...

    生成订单编码

    7. **自动化生成**:在实际操作中,订单编号的生成通常是自动化的,通过编程语言(如Python、Java或JavaScript)在用户下单时即时生成。这需要开发相应的函数或方法来确保每次生成的编号都是唯一的。 8. **数据库...

    快递号生成器

    进阶的快递号生成器可能具备更多功能,如自定义编码规则、批量生成、自动插入数据库等。此外,可以考虑集成物流查询接口,使得生成的号码可以直接查询物流状态,提升用户体验。 综上所述,快递号生成器在IT行业中...

    自动流水号打印delphi源码

    在IT行业中,流水号通常用于为记录分配唯一的标识符,如订单号、发票号等,以便于跟踪和管理业务流程。 Delphi是一种基于对象的、面向对象的 Pascal 编程语言,由Borland公司(现在是Embarcadero Technologies)...

    web项目里用到的工具类(正则校验、图片验证码、json解析、订单号生成)

    例如,正则校验类可以提供更多的验证规则,图片验证码类可以支持自定义颜色、背景、字体等,订单号生成类可以考虑更多的业务需求,如区分不同的订单类型等。这些工具类的复用不仅简化了开发工作,还降低了维护成本。

    php生成唯一的订单函数分享

    这个自定义的`trade_no()`函数确保了在大多数情况下都能生成唯一的订单号。然而,对于极高并发的情况,仍然存在微小的概率生成重复的订单号。为了进一步增强唯一性,可以考虑添加服务器ID、进程ID或数据库自增ID等...

    java自动生成编号的实现(格式:yyMM+四位流水号)

    java自动生成编号的实现(格式:yyMM+四位流水号) java自动生成编号的实现是指通过java语言生成一个唯一的编号,格式为yyMM+四位流水号。在实际应用中,自动生成编号可以应用于各种场景,如订单编号、用户编号、物流...

    生成相同长度的流水号

    在IT行业中,生成相同长度的流水号是一项常见的需求,特别是在数据库操作、订单处理或系统标识等领域。在C#编程语言中,我们可以利用多种方法来实现这一功能。下面将详细介绍如何在C#中生成相同长度的流水号,并提供...

    C#自定义生成业务分类及所属业务信息数据字段

    业务信息则是每个分类下的具体数据,如订单号、客户名称、金额等。在C#中,我们可以创建类来表示这些概念。 1. **自定义类的设计**:在C#中,可以创建一个`BusinessCategory`类来代表业务分类,包含属性如`...

Global site tag (gtag.js) - Google Analytics