`
Sunshyfangtian
  • 浏览: 243570 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

流水号问题

 
阅读更多

整型字段的流水号问题解决方案

1.根据inv_code和bid_userid从表zsq_bid_info读取最高的版本号ver_no(类型为tinyint),如果该表为空,则将当前最高的版本号标记为0:
select cast(isnull(max(ver_no),0) as int) from zsq_bid_info where inv_code='2010-HASQ-0001' and bid_userid = 'SQ00001'

 

 

字符型字段的流水号问题解决方案

2.问题:产生规则:SQ+5位的流水数字(如:SQ0001)。
应用:用户向表zsq_inv_user注册时,若表为空,则该注册用户的账号(inv_userid)应为SQ0001;若表存在SQ0001,……,SQ0033等账号,则当前注册用户的账号(inv_userid)应为SQ0034。
解决方案:新注册用户的账号通过如下语句产生
select 'SQ'+ substring(cast(cast(isnull(max(substring(inv_userid,2,4)),0) as int)+10001 as char(5)),2,4) 
from zsq_inv_user
where substring(inv_userid,1,1)= 'SQ'

 

3.问题:产生规则:年度+'-'+文件类型代碼+'SQ'+'-'+4位流水号(如: 2010-HASQ-0001)。
应用:类似上一个问题,同样要先判空,“类型代码”是可变的,这里假定为“HA”
解决方案:新文件编号通过如下语句产生

select cast(year(getdate()) as char(4))+'-'+'HA'+'SQ'+'-'+
substring(cast(cast(isnull(max(substring(inv_code,11,4)),0) as int)+10001 as char(5)),2,4)
from zsq_inv_info
where inv_type='HA' and substring(inv_code,1,4)=year(getdate())

 

分享到:
评论

相关推荐

    MS SQL Server 2000中流水号问题的解决方案.pdf

    在解决MS SQL Server 2000中流水号问题时,提出了针对整型(int)和字符型(Char)数据类型流水号的解决方案。这些解决方案具有并发性好、不会引起阻塞和计算效率高等特点。文档中可能详细介绍了如何在保持高并发性能的...

    生成并发唯一性流水号的解决方案.doc

    生成并发唯一性流水号的解决方案 生成并发唯一性流水号是指在并发环境中生成唯一的流水号,以满足业务系统中对流水号的需求。下面将对该解决方案的关键技术点进行详细解释。 表结构设计 在生成并发唯一性流水号的...

    集群环境流水号设计

    在IT行业中,集群环境流水号设计是一个至关重要的环节,特别是在分布式系统中,它涉及到数据的一致性和业务的正确性。本文将围绕这个主题展开,详细解释集群环境下如何设计高效的流水号生成策略,以及如何通过源码...

    abap产生流水号的两种方法

    ABAP产生流水号的两种方法 ABAP是SAP系统中的一种编程语言,用于开发SAP系统中的应用程序。在SAP系统中,流水号是非常重要的一种数据类型,用于标识唯一的记录。然而,SAP系统中并没有提供序列号的功能,但是我们...

    C#生成流水号小代码

    ### C#生成流水号小代码知识点解析 #### 一、代码功能概述 这段代码主要实现了在C#中自动生成带有日期的流水号的功能。流水号通常用于标识唯一性记录,例如订单编号、文档编号等。该代码通过结合当前日期与递增的...

    自定义函数完成单据流水号的设计

    - 为了处理并发问题,可以利用`@@SPID`(当前会话的进程ID)或者`NEWID()`(生成全局唯一的标识符)结合`@prefix`和递增数字生成流水号,这样即使在并发环境中也能保证唯一性。 - 对于顺序性,可以使用`DATEPART()`...

    JAVA生成订单号(日期+流水号)

    本文将详细讲解如何使用Java按照日期加流水号的方式生成订单号,并确保其递增性。 首先,订单号通常由日期部分和流水号两部分组成。日期部分可以是年月日或年月日时分秒,用于体现订单创建的时间;流水号则是基于...

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

    在.NET开发中,流水号(Sequence Number)是一种常见的需求,特别是在数据库操作中,它用于为每条记录生成唯一的标识符。这里的"NET 流水号的生成源代码(附数据库)"资源提供了一种实现方式,结合了C#编程语言、ASP...

    彻底解决MS SQL Server2000中最大流水号的生成问题.pdf

    MS SQL Server 2000 中最大流水号的生成问题解决方案 MS SQL Server 2000 是一个功能强大的关系数据库管理系统,它广泛应用于各种企业级应用系统中。然而,在实际应用中,MS SQL Server 2000 中最大流水号的生成...

    解决SQLServer最大流水号的方法

    然而,在实际应用中,我们可能会遇到最大流水号的问题,那么如何解决这个问题呢?本文将介绍两种解决 SQL Server 最大流水号的方法。 方法一:使用 SCOPE_IDENTITY 在 SQL Server 中,我们可以使用 SCOPE_IDENTITY...

    Sql 函数获取订单交易流水号

    3. **性能考量**: 当大量并发访问时,需要考虑流水号生成的唯一性和效率问题。 4. **可扩展性**: 如果未来需要支持更多的流水号前缀或者不同的日期格式,可以适当调整函数内部逻辑。 #### 七、总结 该SQL函数提供了...

    一个实用的流水号编码类

    2. 生成新编号:类应提供一个方法用于生成新的流水号或序列号,这可能涉及到线程安全问题,需要确保在多线程环境下也能正确生成唯一编号。 3. 验证序列号:如果涉及到序列号功能,类可能包含验证序列号合法性的方法...

    数据库sqlservser的流水号.rar

    在本压缩包"数据库sqlservser的流水号.rar"中,包含了一个名为"流水号.sql"的文件,这很可能是用来演示或实现SQL Server中生成流水号的SQL脚本。 SQL Server 2012及更高版本引入了`SEQUENCE`对象,这是官方支持的...

    生成相同长度的流水号

    在使用过程中,注意处理并发问题,避免流水号冲突。同时,为了保证数据的持久性和一致性,通常会将流水号生成逻辑与数据库操作相结合,确保生成的流水号能在多用户环境中正确处理。 在提供的压缩包文件“AddMethod...

    java生成流水-格式202001270001

    - 标签中提到的“不存在多线程问题”意味着在设计流水号生成器时已经考虑到了并发环境。`AtomicInteger`和`AtomicLong`的使用确保了即使在多线程环境中,流水号的生成也是线程安全的,不会出现序列错乱或者重复的...

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

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

    Oracle 中生成流水号的方法

    在实际应用中,除了上述方法,还可以考虑其他策略来生成流水号,比如使用子表存储未分配的流水号,每次分配时从子表中取出并删除,以防止并发问题。这种方法适用于需要连续流水号但不显示在界面的情况。 总的来说,...

    new_no.rar_Noé 1_流水号

    此外,如果数据量大,要考虑如何避免流水号过大带来的存储问题。 综上所述,"new_no.rar_Noé 1_流水号"文件可能涉及到的IT知识点包括: 1. 数据库中的流水号(序列号/自增ID) 2. SQL脚本编写,特别是与流水号管理...

    java开发利用日期+xxx生成形如20131210001的流水号

    java开发用于给上传文件附上ID,此ID号为日期+xxx,生成形如20131210001 第二天自动从20131211001开发不会重复。有问题可联系我。

Global site tag (gtag.js) - Google Analytics