我写了一个函数,但是不能用default()约束调用。ALTER function [dbo].[AutoFamily_Code](@Community_ID int,@HousingEstate_ID int)
returns varchar(10)
as
begin
declare @str varchar(10)
select @str=isnull(max(Family_Code),right('000'+right(@Community_ID,3),3)+right('000'+right(@HousingEstate_ID,3),3)+'0000')
from FamilyInfo
where Family_Code like right('000'+right(@Community_ID,3),3)+right('000'+right(@HousingEstate_ID,3),3)+'%'
select @str=left(@str,6)+right('0000'+convert(varchar(4),convert(int,right(@str,4))+1),4)
return (@str)
end

解决方案 »

  1.   


    declare @t table(a int,b int)
    insert @t select 00111,00222
    insert @t select 00333,00444
    --print right('aabbb',3)
    declare @maxcode varchar(10)
    set @maxcode = '1112220002'
    declare @sql nvarchar(50)
    --@sql是编号中的max值
    set @sql =right(@maxcode,4)
    select right(a,3)+right(b,3)+right('0000'+convert(varchar(4),convert(int,right(@sql,4))+1),4) as '编号' from @t
      

  2.   

    存储过程调用函数 [dbo].[AutoFamily_Code](数1,数2)
      

  3.   

    不要考虑default除非你给参数确定的值,按你的描述在插入语句中调用函数就够了
      

  4.   

    wgzaaa  结帐时没看见你的帖子!以后有机会补上