`
wyf
  • 浏览: 433333 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

sql生成流水号

    博客分类:
  • SQL
 
阅读更多

--思路:将表某一字段的默认值设置成自定义函数,该自定义函数完成流水号的创建。
--例子:流水号字段要求:1.yymmdd+6位流水号(如20071113000001)--2.当天流水号递增,第二天流水号重新从000001开始。
    代码:
 --函数
create  function   [dbo].[f_getid]()   
 returns   varchar(14)   
  as   
  begin   
  declare   @id   varchar(14),
            @dt   varchar(8),
            @maxdt varchar(8) 
  select   @dt=convert(varchar(8), getdate(),112)
  select   @maxdt=left(isnull(max(id),convert(varchar(8), getdate(),112)),8)  from bookid
  if @maxdt=@dt 
  begin 
  select   @id=@dt+right(1000001+isnull(right(max(id),6),0),6) 
  from   bookid   where   id   like   @dt+'%' 
  end  
  if @maxdt<>@dt
  begin
  select @id=@dt+'000001'
  end 
  return(@id)   
  end 
--建表
CREATE TABLE [dbo].[bookid](
 [id] [varchar](14) COLLATE Chinese_PRC_BIN NOT NULL CONSTRAINT [DF_bookid_id]  DEFAULT ([dbo].[f_getid]()),
 [ISBN] [nchar](30) COLLATE Chinese_PRC_BIN NOT NULL,
 [inlibrary] [bit] NOT NULL CONSTRAINT [DF_bookid_inlibrary]  DEFAULT ((1)),
 CONSTRAINT [PK_bookid] PRIMARY KEY CLUSTERED 
(
 [id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

 

public static String getOrderNo(){
        long No = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String nowdate = sdf.format(new Date());
        No = Long.parseLong(nowdate)*1000;//这里如果一天订单多的话可以用一万或更大
        No+=getNo();
        return getUserId+No;
    }
    public static int getNo(){//返回当天的订单数+1
        return 001;
    }

public static String getUserId(){
    return "123";
}
 
分享到:
评论

相关推荐

    sql创建流水号(纯sql)

    mysql创建流水号,以前也一直不知道怎么写,最后我知道了,然后我保存了下来,用的纯sql语句,不需要后台java或者别的语言去生成。直接数据库的sql语句就行了。

    SQL server 自动生成流水号

    自动为每一条插入的数据按照自己设定的格式生成流水号

    C#生成流水号小代码

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

    解决SQLServer最大流水号的方法

    解决 SQL Server 最大流水号的方法 SQL Server 中,最大流水号是指在插入数据时,自动增长的唯一标识符。然而,在实际应用中,我们可能会遇到最大流水号的问题,那么如何解决这个问题呢?本文将介绍两种解决 SQL ...

    自动生成流水账号的存储过程 格式为 年月日+’0001‘

    用于自动生成流水账号的存储过程 有详细的注释

    建表sql、生成流水号存储过程

    建表sql、生成流水号存储过程

    数据库sqlservser的流水号.rar

    SQL Server 2012及更高版本引入了`SEQUENCE`对象,这是官方支持的生成流水号的方法。在没有`SEQUENCE`之前,人们通常会依赖于`IDENTITY`列或者自定义的存储过程来生成流水号。现在,让我们详细探讨一下SQL Server中...

    带字母的流水号(0-9和A-Z).sql

    因为需要两位数的流水号,只用数字肯定不够,所以带上字母,通过两个临时表数据合并的方式,生成一个流水号记录表,方便使用

    纯SQL语句创建流水号

    mysql创建流水号,用的纯sql语句

    存储过程实现生成流水号

    存储过程实现流水号,可以实现防止并发生成重复的流水号,.net 技术,sql server 数据库编写,可以参考学习哦

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

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

    0-9和A-Z的流水号.sql

    SQL 生成A-Z英文字母和0-9数字组合的流水号,其中我的案例是2位数的,根据自己的需要可以生成N位流水号;

    mysql创建流水号

    mysql创建流水号,以前也一直不知道怎么写,最后我知道了,然后我保存了下来

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

    在SQL Server中,我们可以创建一个自定义函数,如`GetNextInvoiceNumber()`,该函数根据预定义的规则生成流水号。这个函数可能需要考虑以下几点: - 使用`@prefix`参数来设定流水号的前缀,例如"INV-"代表发票。 - ...

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

    2. **@gd** (类型:`datetime`): 用于指定生成流水号的日期时间,默认为系统当前日期时间(`getdate()`). #### 三、返回值 该函数返回一个类型为 `varchar(20)` 的字符串,即生成的订单交易流水号。 #### 四、实现...

    mysql创建流水号,用的纯sql语句

    mysql创建流水号,以前也一直不知道怎么写,最后我知道了,然后我保存了下来,用的纯sql语句,不需要后台java或者别的语言去生成。直接数据库的sql语句就行了。我设置的积分是1分。要是增加了,就是CSDN增加的,

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

    本资源提供了一种.NET平台下生成流水号的源代码实现,同时也结合了SQL Server数据库的使用,适用于SQL Server 2005/2008版本,并且兼容Visual Studio 2008/2010开发环境。 首先,生成流水号的主要目标是确保每个...

    NET 如何进行流水号的生成的案例及源代码(附数据库)

    在.NET开发中,生成流水号是一项常见的需求,例如在订单系统、会员系统或者任何需要唯一标识符的场景中。流水号通常需要具有唯一性、可读性和一定的排序性。本资源提供了一个C#语言实现流水号生成的案例,并且包含了...

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

    总的来说,这个资源对于理解如何在.NET环境中结合C#、ASP.NET和SQL数据库生成流水号非常有价值。通过深入研究源代码,你可以学习到数据库设计、并发控制、事务处理和Web应用开发等多个方面的知识。同时,这也可以...

    SQL存储过程自动生成流水

    根据给定的信息,本文将详细解释如何通过 SQL 存储过程自动生成流水号,并提供一个实际的示例来展示这一过程。流水号通常用于数据库记录的唯一标识,尤其是在需要跟踪交易或事务的情况下。 ### 一、理解流水号的...

Global site tag (gtag.js) - Google Analytics