--思路:将表某一字段的默认值设置成自定义函数,该自定义函数完成流水号的创建。
--例子:流水号字段要求: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";
}
分享到:
相关推荐
mysql创建流水号,以前也一直不知道怎么写,最后我知道了,然后我保存了下来,用的纯sql语句,不需要后台java或者别的语言去生成。直接数据库的sql语句就行了。
自动为每一条插入的数据按照自己设定的格式生成流水号
### C#生成流水号小代码知识点解析 #### 一、代码功能概述 这段代码主要实现了在C#中自动生成带有日期的流水号的功能。流水号通常用于标识唯一性记录,例如订单编号、文档编号等。该代码通过结合当前日期与递增的...
解决 SQL Server 最大流水号的方法 SQL Server 中,最大流水号是指在插入数据时,自动增长的唯一标识符。然而,在实际应用中,我们可能会遇到最大流水号的问题,那么如何解决这个问题呢?本文将介绍两种解决 SQL ...
用于自动生成流水账号的存储过程 有详细的注释
建表sql、生成流水号存储过程
SQL Server 2012及更高版本引入了`SEQUENCE`对象,这是官方支持的生成流水号的方法。在没有`SEQUENCE`之前,人们通常会依赖于`IDENTITY`列或者自定义的存储过程来生成流水号。现在,让我们详细探讨一下SQL Server中...
总的来说,这个资源对于理解如何在.NET环境中结合C#、ASP.NET和SQL数据库生成流水号非常有价值。通过深入研究源代码,你可以学习到数据库设计、并发控制、事务处理和Web应用开发等多个方面的知识。同时,这也可以...
因为需要两位数的流水号,只用数字肯定不够,所以带上字母,通过两个临时表数据合并的方式,生成一个流水号记录表,方便使用
mysql创建流水号,用的纯sql语句
存储过程实现流水号,可以实现防止并发生成重复的流水号,.net 技术,sql server 数据库编写,可以参考学习哦
生成并发唯一性流水号的解决方案 生成并发唯一性流水号是指在并发环境中生成唯一的流水号,以满足业务系统中对流水号的需求。下面将对该解决方案的关键技术点进行详细解释。 表结构设计 在生成并发唯一性流水号的...
SQL 生成A-Z英文字母和0-9数字组合的流水号,其中我的案例是2位数的,根据自己的需要可以生成N位流水号;
mysql创建流水号,以前也一直不知道怎么写,最后我知道了,然后我保存了下来
在SQL Server中,我们可以创建一个自定义函数,如`GetNextInvoiceNumber()`,该函数根据预定义的规则生成流水号。这个函数可能需要考虑以下几点: - 使用`@prefix`参数来设定流水号的前缀,例如"INV-"代表发票。 - ...
2. **@gd** (类型:`datetime`): 用于指定生成流水号的日期时间,默认为系统当前日期时间(`getdate()`). #### 三、返回值 该函数返回一个类型为 `varchar(20)` 的字符串,即生成的订单交易流水号。 #### 四、实现...
mysql创建流水号,以前也一直不知道怎么写,最后我知道了,然后我保存了下来,用的纯sql语句,不需要后台java或者别的语言去生成。直接数据库的sql语句就行了。我设置的积分是1分。要是增加了,就是CSDN增加的,
在.NET开发中,生成流水号是一项常见的需求,例如在订单系统、会员系统或者任何需要唯一标识符的场景中。流水号通常需要具有唯一性、可读性和一定的排序性。本资源提供了一个C#语言实现流水号生成的案例,并且包含了...
根据给定的信息,本文将详细解释如何通过 SQL 存储过程自动生成流水号,并提供一个实际的示例来展示这一过程。流水号通常用于数据库记录的唯一标识,尤其是在需要跟踪交易或事务的情况下。 ### 一、理解流水号的...
下面将详细介绍SQL Server 2000和DB2中分页存储过程的实现,以及DB2如何自动生成流水号。 首先,让我们看看SQL Server 2000的分页存储过程。在SQL Server 2000中,由于没有内置的OFFSET和FETCH NEXT功能,我们通常...