微软BI开拓者数据库专区SQL Server开发 [讨论]关于生成流水码

1  /  1  页   1 跳转 查看:2418

[讨论]关于生成流水码

[讨论]关于生成流水码

如果流水号中没有任何意义的话,只需要一个max函数 就可以生成了新的流水号了,但是如果流水号需要一个限制参数的话,觉得生成工作就会复杂一些,下面是一个基于年月生成流水号的代码,每一个月以年月加三位代号组成新的流水码,由于本人水平很低,请各位高手一起讨论,有没有更好更快的办法生成流水码,同时大家试一试,下面的过程,可以在SQLSERVER 2005 中可以 改成函数吗,如果成函数,需要传些什么参数,以达到通用性,希望大家一起讨论!




create  PROCEDURE  maxddid
@dd datetime
AS   
declare
@thismonth varchar(6),
@maxid varchar(9)
select @thismonth=cast( year(@dd) as varchar(4))+
case when  month(@dd)>9 then
cast(month(@dd)as varchar(2)) else '0' + cast(  month(@dd) as varchar(2)) end
select @maxid = max(out_id) from dd_out where substring(out_id,1,6)=@thismonth
return(select  case when @maxid is null then @thismonth+ '001' else cast ((cast( @maxid as int) + 1) as varchar(9))  end )






进一步地思考,可不可以用一个函数实现一个万能的流水码生成函数,只需要我们传要求参数,及相应的表名与字段名到函数中,就可以得到一个符合要求的流水码!
中国数据库联盟 :http://cndba.5d6d.com
 

回复:[讨论]关于生成流水码

@dd datetime换成getdate()
 

回复:[讨论]关于生成流水码

@dd datetime换成getdate()
 
1  /  1  页   1 跳转

版权所有 微软BI开拓者 

Powered by Discuz!NT 2.1.202    Copyright © 2001-2012 Comsenz Inc.
Processed in 0.0156256 second(s) , 3 queries.
返顶部