高端网站开发程,资讯网站的好处,网站建设的功能和定位,如何查一个公司的营业执照问题#xff1a;在实际业务处理中有些单号需要自动增长#xff0c;但又不能用自增列代替 eg: P031106001 -- 第一位P表示采购单,031106表示日期#xff0c;后三位是流水号。 /* 1:创建测试用的表结构 */create table tablename(pono char(10),b int)go/* 2:创建一…问题在实际业务处理中有些单号需要自动增长但又不能用自增列代替 eg: P031106001 -- 第一位P表示采购单,031106表示日期后三位是流水号。 /* 1:创建测试用的表结构 */create table tablename(pono char(10),b int)go/* 2:创建一个得到当前日期的视图为下面的自字义函数作准备 */create view vGetdateas select getdate() as todaygo/* 3:用自定义函数来得到单号(因自定函数内不能用getdate()来得到当前日期要用到上面的视图) */create function getDH()returns char(10)Asbegin declare dh1 char(10),dh2 char(10) select dh1 max(pono) from tableName Set dh1 IsNull(dh1,P000000000) select dh2 Left(dh1,1) right(convert(varchar(8),today,112),6) 001 from vGetdate if dh1 dh2 begin set dh2 left(dh1,7) right(000 cast(cast(right(dh1,3) as int)1 as varchar),3) end return(dh2)endgo/* 4:在字段默认值中填入 dbo.getdh() */alter table tablename add constraint df_tablename_1 default(dbo.getdh()) for pono-/* 5:测试*/insert tablename(b) values(1)insert tablename(b) values(2)Select * from tablename-- 测试结果pono b ---------- ----------- P031115001 1P031115002 2总结此方法运用到了一些小技巧1用字段默认值来实现单号自增2用自定义函数来得到字段的默认值3因在自定义函数中不能用getdate()之类非确定的函数用视图来得到当前日期