【小小问题集锦9之---以当天的日期和类别,自动生成流水号】
来源:互联网 发布:c语言ln函数 编辑:程序博客网 时间:2024/04/29 08:51
/*-----------------------------------
*以当天的日期和类别,自动生成流水号
*解决方法:触发器
*方法缺点:只能一条条插入,无法批量插入
-----------------------------------*/
--ID形式=当天日期+类别+流水号(001,002.......)
if OBJECT_ID('test') is not null
drop table test
go
create table test (id varchar(20) ,class varchar(10),value varchar(30))
insert test select '20100129-A-001','A','kk'
insert test select '20100129-A-002','A','P'
insert test select '20100129-B-001','B','BAN'
go
create trigger t_test on test
instead of insert
as
begin
declare @id varchar(20),@class varchar(10)
set @id=(select max(t.id) from test t join inserted i on t.class=i.class and substring(t.id,1,8)=convert(varchar(8),getdate(),112))
set @class=(select class from inserted)
if (@id is null)
set @id=convert(varchar(8),getdate(),112)+'-'+@class+'-001'
else
set @id=convert(varchar(8),getdate(),112)+'-'+@class+'-'+right(cast(right(@id,3) as int)+1001,3)
insert test
select @id,class,value from inserted
end
go
insert test (class,value)select 'A','apple'
insert test (class,value)select 'A','PEAR'
insert test (class,value)select 'B','BANANA'
insert test (class,value)select 'B','CAT'
insert test (class,value)select 'C','DOG'
go
select * from test
/*
id class value
-------------------- ---------- ------------------------------
20100129-A-001 A kk
20100129-A-002 A P
20100129-B-001 B BAN
20100130-A-001 A apple
20100130-A-002 A PEAR
20100130-B-001 B BANANA
20100130-B-002 B CAT
20100130-C-001 C DOG
*/
- 【小小问题集锦9之---以当天的日期和类别,自动生成流水号】
- 小小问题集锦9之---以当天的日期和类别,自动生成流水号
- 日期的格式化和工单流水号生成
- SQL SERVER 根据日期自动生成流水号
- C#自动生成流水号的代码
- dos命令复制当天生成的以日期为文件名的文件
- dos命令复制当天生成的以日期为文件名的文件
- 【小小问题集锦12之---查找具有IDENTITY列的表和其列】
- 小小问题集锦12之---查找具有IDENTITY列的表和其列
- 【小小问题集锦8之---解决IDENTITY列的断号问题】
- 小小问题集锦8之---解决IDENTITY列的断号问题
- SQL自动生成流水号
- 【小小问题集锦13之---关于分组加顺序号的SQL写法】
- 小小问题集锦13之---关于分组加顺序号的SQL写法
- 自动生成C# 年月日加流水号的单据号、及日期时间相关函数的用法
- 根据日期+顺序号生成流水号的存储过程
- 流水号的生成(日期+业务码+自增序列)
- 建立以当天日期为文件名的文件夹的批处理
- 从今天开始翻译 C++ Template Metaprogramming
- linux 2.6源代码情景分析笔记之系统启动
- 异常 垃圾对象等
- [RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnectio
- Federation Server(ODBC/MSSQL wrappers) running under Windows Authentication
- 【小小问题集锦9之---以当天的日期和类别,自动生成流水号】
- 本书内容
- SQL Server2005 中用 Pivot 生成交叉表
- Myeclipse调用webservice总结【利用WSDL】
- SOCKET编程中,select()函数的作用
- 模板元函数(七)
- justhost美国主机空间的套餐
- Visual Studio 2008常用快捷键
- 人生的三条忠告