建立存储过程 ID 自动添加 yymmdd+四位序列

原创 2006年06月21日 12:44:00

建立表


CREATE TABLE [dbo].[Tab] (
 [ID] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
 [IDName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

建立存储过程

ID 自动添加 yymmdd+四位序列

如:0601110001,06010110002,0601220001...

Create procedure sp_CreateID
@IDName char(10),
@Ret_err int=0 output
as

declare @ID char(10)
Select top 1 @ID =ID from tab
where left(ID,6)= replace(convert(char(10),getdate(),2),'.','')
order by ID desc
if (@ID is not null)
 begin
   set @ID = replace(convert(char(10),getdate(),2),'.','')+right(10001+@ID,4)
   select @Ret_err=0
 end
else
 begin
    set @ID =replace(convert(char(10),getdate(),2),'.','')+'0001'
    select @Ret_err=1
 
 end

insert into tab(ID,IDName) values(@ID,@IDName)
go

测试:

declare @Ret as int
exec sp_CreateID '姓名' ,@Ret output
print @Ret

使用数据库序列生成主键

一,什么是序列     序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要 的用途是生成表的主键值,可以在插入语句中引用,也可以通...
  • reggergdsg
  • reggergdsg
  • 2017年02月19日 17:29
  • 2871

ORACLE定时任务调用存储过程动态为表添加分区

1、创建需要自动分区的表 CREATE TABLE TEST(M DATA) PARTITION BY RANGE(M) ( PARTITION TEST_PAR_ );...
  • xxdxuxiangdong
  • xxdxuxiangdong
  • 2016年08月10日 19:51
  • 1703

一种实现mysql里自增序列的方法

最近工作中遇到一个需求,需要设计一个自增字段,当每插入一条记录的时候,该字段加1,但是由于种种原因,该字段无法作为primary key存在,这样就需要该字段实现为一个自增序列。 mysql中的aut...
  • bryce123phy
  • bryce123phy
  • 2016年11月18日 14:16
  • 2313

Oracle 存储过程删除和新增序列解决流水号每天重新开始

--删除所有序列的存储过程; create or replace procedure PROC_DROPSEQUENCE_All as --引用user_sequences表中的...
  • sunjava1
  • sunjava1
  • 2014年10月23日 16:22
  • 1882

Oracle插入数据并获取自增长序列ID方法

Oracle插入数据并获取自增长序列ID方法 分类: Java相关技术 数据库相关技术 2011-09-30 12:23 3100人阅读 评论(0) 收藏 举报 or...
  • lazhu159357
  • lazhu159357
  • 2013年12月31日 16:34
  • 8673

mysql数据库索引和存储过程

索引和存储过程、存储过程程序的实现 mysql> select * from student; +------+----+------+ | name | id | d_id | +-----...
  • sxb956347789
  • sxb956347789
  • 2016年11月10日 23:07
  • 969

【redis】使用redis RedisAtomicLong生成自增的ID值

本文介绍在spring+redis组合时,使用redis的RedisAtomicLong生成自增的ID值。 1、自增ID生成类 RedisSequenceFactory是一个简单封装类,用于使用r...
  • yxtouch
  • yxtouch
  • 2017年06月20日 19:40
  • 3531

navicat 创建存储过程

navicat创建存储过程图解
  • winy_lm
  • winy_lm
  • 2015年11月07日 00:03
  • 11465

Oracle存储过程的事务

1.Oracle事务不会自动提交。通常情况下,oralce将整个存储过程作为一个事务整体,整个过程内的事务,要么都提交,要么都回滚。 2.如果过程内部使用了commit命令或rollback命令,则存...
  • yuhualee
  • yuhualee
  • 2014年03月05日 19:21
  • 3589

Android 监听EdiText 检测输入银行卡号每四位自动空格

Android 中输入银行卡号每四位空格
  • xiaoshi316
  • xiaoshi316
  • 2015年01月08日 18:00
  • 2449
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:建立存储过程 ID 自动添加 yymmdd+四位序列
举报原因:
原因补充:

(最多只允许输入30个字)