各位大哥大姐请帮帮小弟吧...问题是这样的:
编号的前六位是固定的中间四位是年号后六位是用流水号,但是年号改变后六位的流水号自动从1开始增加,比如2007年的登记字号是4415812007000006,2008年后登记字号的后六位自动从4415812008000001。这个问题已经捆扰我好几天了请大家帮帮忙,谢谢了。
编号的前六位是固定的中间四位是年号后六位是用流水号,但是年号改变后六位的流水号自动从1开始增加,比如2007年的登记字号是4415812007000006,2008年后登记字号的后六位自动从4415812008000001。这个问题已经捆扰我好几天了请大家帮帮忙,谢谢了。
AS
SELECT dt=CONVERT(CHAR(4),GETDATE(),120)--方法
CREATE FUNCTION f_GetNo()
RETURNS char(15)
AS
BEGIN
DECLARE @dt CHAR(4)
SELECT @dt=dt FROM v_GetDate
RETURN(
SELECT '441581'+@dt+RIGHT(1000001+ISNULL(RIGHT(MAX(编号),6),0),6)
FROM 表 WITH(XLOCK,PAGLOCK)
WHERE 编号 like '441581'+@dt+'%')
END--获取编号
SELECT dbo.f_Get()
编一个函数,每一次生成一个登记字号的时候,先检测年份是否和上一次不一样,
if 不一样 then
begin
ii:=1;//ii为计数值
oldyear:=newyear;
end else inc(ii);
result:='441581'+newyear+format('%0.6d',[ii]);