说明: 
       档案号的格式: 四位年+两位月+两位日+四位档案号 
                即:200202260001 
       档案编号表:记录当前最新的档案编号,只有一个记录.为了防止记录 出现重复的情况. 
        CREATE PROCEDURE prGetNo --产生按年月日排列的档案号 
    @No varchar(12) output ---为产生的档案号 
AS  
declare @Year Int, 
        @Month int, 
        @Day int, 
        @Temp_No varchar(12), 
        @NeedNo varchar(4) --档案号 
BEGIN 
  select @year=Year(GetDate()) 
  select @Month=Month(GetDate()) 
  select @Day=Day(GetDate()) 
  select @No=Str(@Year,4,0)+ 
                (select 
                 case 
                  when @Month >=10 then Str(@Month,2,0) 
                  when @Month <10 Then  '0 '+Str(@Month,1,0) 
                end)+ 
                (select 
                 case 
                  when @Day >=10 then Str(@Day,2,0) 
                  when @Day <10 Then  '0 '+Str(@Day,1,0) 
                 end) 
  SELECT @Temp_No = 档案编号 FROM 档案编号表 
     IF @No  < > SUBSTRING( @Temp_No,1,8) 
     SELECT @No = @No+ '0001 ' 
  ELSE 
   BEGIN 
     SELECT @RandNo = STR(CONVERT(int,(SUBSTRING( @Temp_No ,9,4))+1),4,0) 
     SELECT @RandNo = REPLACE( @RandNo, '  ', '0 ') 
     SELECT @No = @No + @RandNo 
   END 
  UPDATE 档案编号表 
         SET 档案编号 = @No 
END 
END 
给你参考!!!