本人定义一函数如下:
create  FUNCTION f_bl_qcze(@rq datetime)
RETURNS @fhbb TABLE (je money,bs int)
as begin
  insert @fhbb
  select sum(isnull(a.dkje,0)-isnull(b.hkje,0)) je,count(*) bs
  from dkdn a left outer join 
       (  select dkid,sum(bj) as hkje
            from hkdn
           where hkrq<=DATEADD (month,-1,@rq)
        group by dkid) b on (a.id=b.dkid)
  where a.dqrq<=@rq and a.dqrq<=DATEADD (month,-1,@rq) 
        and isnull(a.dkje,0)-isnull(b.hkje,0)>0
  return
end
编译正常完成在调用的时候输入 
declare @date datetime
set @date='2006-11-11'
select dbo.f_bl_qcze(@date)
提示结果为服务器: 消息 208,级别 16,状态 1,行 3
对象名 'dbo.f_bl_qcze' 无效。

解决方案 »

  1.   

    --删除以后重新建,这样试试?
    create  FUNCTION dbo.f_bl_qcze(@rq datetime)
    RETURNS @fhbb TABLE (je money,bs int)
    as begin
      insert @fhbb
      select sum(isnull(a.dkje,0)-isnull(b.hkje,0)) je,count(*) bs
      from dkdn a left outer join 
           (  select dkid,sum(bj) as hkje
                from hkdn
               where hkrq<=DATEADD (month,-1,@rq)
            group by dkid) b on (a.id=b.dkid)
      where a.dqrq<=@rq and a.dqrq<=DATEADD (month,-1,@rq) 
            and isnull(a.dkje,0)-isnull(b.hkje,0)>0
      return
    end
      

  2.   

    返回标量值函数才是select dbo.函数名
    表值函数要select * from dbo.函数名
    改成:
    declare @date datetime
    set @date='2006-11-11'
    select * from dbo.f_bl_qcze(@date)
      

  3.   

    gahade(沙果) 
    还没休息?
      

  4.   

    上来瞄一眼。
    看看CSDN上有多少今夜不眠的
      

  5.   

    感谢 coolingpipe(冷箫轻笛) 的回复,问题解决给分20