ALTER      function GetCount(@name nvarchar(20))
returns int
as 
begin
declare @total int
declare @str nvarchar(100)
set @str=''
set @str='select @total=count(*) from '+@name
exec sp_executesql @str N'@total Int out',@total output --这里改就可以了return @total
end

解决方案 »

  1.   

    但出现:
    第 14 行: '@total Int out' 附近有语法错误。麻烦再帮我改改吧!!
      

  2.   

    --GetCount函数
    ALTER      function GetCount(@name nvarchar(20))
    returns int
    as 
    begin
    declare @total int
    declare @str nvarchar(100)
    set @str=''
    set @str='select @total=count(*) from '+@name
    exec sp_executesql @str,N'@total Int out',@total output    --楼上少了个逗号,^_^return @total
    end
      

  3.   

    还是一样的错误啊,你看调用:
    SELECT dbo.GetCountAnnal(sys.name) as total,* FROM sysobjects sys WHERE xtype = 'U' AND (Not (id) = 133575514) and status>0函数:
    SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO
    ALTER         function GetCountAnnal(@name nvarchar(20))
    returns int
    as 
    begin
    declare @total int
    declare @str nvarchar(100)
    set @str=''
    set @str='select @total=count(*) from '+@nameexec sp_executesql @str,N'@total Int out',@total output
    return @total
    end
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
      

  4.   

    出错消息:服务器: 消息 557,级别 16,状态 2,过程 GetCountAnnal,行 11
    只有函数和扩展存储过程才能从函数内部执行。
      

  5.   


    你创建存储过程!!
    create  PROCEDURE dbo.sp_GetCount(@name varchar(20),@total int out)
    as 
    begindeclare @str nvarchar(100)
    set @str=''
    set @str='select @total=count(*) from '+@name
    exec sp_executesql @str, N'@total Int out',@total output --这里改就可以了endGO
    这样调用。
    declare @aa int
    exec dbo.sp_GetCount 'ff_user_base_info',@aa out
    select @aa
      

  6.   

    为什么搞得这么麻烦呢!看看这个EXEC sp_MSforeachtable 'SELECT ''?'',COUNT(*) FROM ?'
      

  7.   

    学习
    请楼上好好讲讲sp_MSforeachtable 'SELECT ''?'',COUNT(*) FROM ?'