1-支持默认值问题
2-null+1=null,
你的测试是 5+77=82 而null+77=null

解决方案 »

  1.   

    CREATE  FUNCTION dbo.pt(
    @xklb as nvarchar(20),
    @hydl as nvarchar(20)='sh',
    @fzrq as nvarchar(20))
    RETURNS int
    AS
    BEGIN
        declare @a  int
        select @a=max(right(许可证号,case @xklb when '普通' then 5 when '临时' then 4 end))+1 
        from y许可证 where  许可类别=@xklb and 行业大类=@hydl and 年=(@fzrq)
        RETURN @a
    END
    FO
      

  2.   

    默认值的问题是解决了(原来是没有设定数据类型的长度)
    可是调用函数时参数为什么会产生空值呢?同样的参数带入普通的select语句中却是正常的?