资源描述:
《sql如何自动生成流水号》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据库的流水号就相当于一个自增的整数,用来识别唯一的记录用的。也就是说你每插入一条记录,流水号就增加1.一般是日期+流水号形成一个唯一的id。1.sql如何自动生成流水号oracle数据库的话可以利用rownum取当前记录的顺序,然后赋值给流水号就可以了2。sql表中有一列xh怎样用语句添加xh为流水号从1依次递增谢谢先进入企业管理器把列xh删除.添加一列,自动递增:altertabletbaddxhintidentity(0,1)altertablexh所在表的表名addxhintidentity(1,1)
2、notnull3。通过SQL自动添加流水号项目中往往有一些单据流水号或者流程流水号是希望通过新增一条记录后自动产生一个编号的,比如新增一条流程就自动根据当前日期自动添加该流程的流程流水号,下面介绍两种不同类型流水号通过SQL自动产生的方法。 流水号格式: 第一种(数值类型):日期+流水号,比如“201104190001”-->"201104190002"; 第二种(文本类型):前缀+日期+流水号,比如“WT201104190001”-->"WT201104190002
3、"。 不论哪种情况,流水号的生成原则都是一样的,流水号的产生都需要根据当前日期产生,新增的一条记录的流水号为当前日期下所有记录中流水号最大那条加1得来。 一、数据库中添加一个表:TestNo 列名 数据类型 说明 ID uniqueidentifier 主键 No bigint 流水号字段,不过是纯数字型的流水号,这个为本例子的第一种情况
4、,流水号可以为纯数字 DT datetime 新增一条记录的当前时间,相信每新增一条记录都会记录这次操作的当前时间的。 CharNo varchar(50) 流水号字段,不过是可以有字符的流水号,这个为本例子的第二种情况。 二、SQL代码ViewCode?--------自动流水号为纯数字的情况,如201104190005------declare @x int,@y char(8)select @x= COUN
5、T(no) from TestNo where CAST(DT as date)=CAST(GETDATE() as date)if(@x=0)beginselect @y=convert(char(8),getdate(),112)insert TestNo(No,DT) values(@y+'0001',GETDATE())endelse insert TestNo(No,DT) values((select MAX(No)+1 from TestNo where CAST(DT as date)=CA
6、ST(GETDATE() as date)),GETDATE())select * from TestNo --------自动流水号为字符的情况,如WT201104190005------declare @x1 int,@y1 char(8)select @x1= COUNT(CharNo) from TestNo where CAST(DT as date)=CAST(GETDATE() as date)if(@x1=0)beginselect @y1=convert(char(8),getdate()
7、,112)insert TestNo(CharNo,DT) values('WT'+@y1+'0001',GETDATE())endelsebegin insert TestNo(CharNo,DT) values('WT'+cast((select MAX(CAST( SUBSTRING(charno,3,12) as bigint))+1 from TestNo where CAST(DT as date)=CAST(GETDATE() as date))asvarchar(50)),GETDATE()
8、)endselect * from TestNo--------------------------------------------------------------------------------------------