业务单号自动增长的处理办法-数据库专栏,SQL Server
来源:互联网 发布:java系统之间同步数据 编辑:程序博客网 时间:2024/05/07 18:51
问题:在实际业务处理中有些单号需要自动增长,但又不能用自增列代替 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()之类非确定的函数,用视图来得到当前日期
- 业务单号自动增长的处理办法-数据库专栏,SQL Server
- 业务单号自动增长的处理办法
- 业务单号自动增长的处理办法
- 业务单号自动增长的处理办法
- 业务单号自动增长的处理办法
- 业务单号自动增长的处理办法 eg: P031106001
- 业务单号自动增长的处理办法 eg: R000000001
- sql server 自动增长
- Sql Server数据库自增长字段标识列的插入或更新修改操作办法
- SQL Server 2000 数据库置疑的处理办法
- SQL Server自动增长字段的使用
- SQL Server主键自动增长的设置
- SQL Server自动增长字段的使用
- SQL Server实现列的自动增长
- 检查SQL SERVER 2005数据库文件大小设置与自动增长
- [SQL Server] 数据库日志文件自动增长导致连接超时的分析
- [SQL Server] 数据库日志文件自动增长导致连接超时的分析
- [SQL Server] 数据库日志文件自动增长导致连接超时的分析
- Js验证框架——RealyEasy验证
- IBM ND8火爆发布 全面对抗微软Office
- 打不死对方,就选择合作-Novell和微软共同建立互操实验室
- 非MFC工程使用MFC库时的问题及解决办法
- 嵌入式系统设计步入整合时代
- 业务单号自动增长的处理办法-数据库专栏,SQL Server
- 虚拟化技术成为IT产业必备 如何管理成制约发展难题
- LinuxWorld 2007开始全面走向应用
- 价值回归 市场集中 -2008空调行业走向稳步发展
- VC++ 6.0实用技巧汇总
- Apple TV 成就PC与家电融合梦想
- 微软走在媒体发展的康庄大路上
- PTC在产品生命周期领域领头狂奔
- 软件培训调研报告