动态统计表有多少条记录,存储过程如下
CREATE   PROCEDURE  usp_recordNumOutPut
@tableName varchar(50)        --传入的表名
AS
exec 'select count(*) from '+@tableName
如何将执行结果赋给一个变量@recordNum?谢谢

解决方案 »

  1.   

    exec 'select count(*) from '+@tableName
    改成
    exec ('select count(*) from '+@tableName)
      

  2.   

    CREATE   PROCEDURE  usp_recordNumOutPut
    @tableName varchar(50)        --传入的表名
    AS
    exec('select count(*) from '+@tableName)
    GO
    exec usp_recordNumOutPut 'titles'
      

  3.   

    Set @Sqlstr=N'select @NowAreaID=count(AreaID) from [dbo].['+@Table_TermRecord+'] 
                                                 where TermID='''+@TermID+''' and TypeID=16 and TDate='''+@TDate+''' and RecordNumber='''+@OldRecordNumber+'''' 
                          exec sp_executesql @Sqlstr,N'@NowAreaID int out',
                                                                           @NowAreaID out
      

  4.   

    CREATE   PROCEDURE  usp_recordNumOutPut
    @tableName varchar(50),        --传入的表名
    @recordnum varchar(50)
    AS
    select @recordnum=count(*) from @tableName
    goexec usp_recordNumOutPut 'titles'
      

  5.   

    CREATE   PROCEDURE  usp_recordNumOutPut
    @tableName varchar(50),        --传入的表名
    @recordnum varchar(50)
    AS
    select @recordnum=count(*) from @tableName
    goexec usp_recordNumOutPut 'titles'不可以执行
      

  6.   

    最后'title'要代替一个参数,用一个表的名字代替'title'
      

  7.   

    CREATE PROCEDURE usp_recordNumOutPut
    @tableName varchar(50), --传入的表名
    @recordnum varchar(50) out
    AS
    select @recordnum=count(*) from @tableName
    return @recordnum
    godeclare @recordnum varchar(50) out
    exec usp_recordNumOutPut 'titles', @recordnum
    select  @recordnum
      

  8.   

    CREATE PROC getcount 
    @tablename varchar(50),
    @return int output
    AS
    BEGIN
         declare @sqlstr nvarchar(4000)
         set @sqlstr = 'select @result=isnull(count(*),10000) from  ' + @tablename 
         exec sp_executesql @sqlstr,N'@result int output',@return output
         RETURN 
    END
    --调用
    declare @return int
    exec getcount 'cj',@return output
    select @return
    --result           
    ----------- 
    7(所影响的行数为 1 行)
      

  9.   

    CREATE PROC getcount 
    @tablename varchar(50),
    @return int output
    AS
    BEGIN
         declare @sqlstr nvarchar(4000)
         set @sqlstr = 'select @result=isnull(count(*),0) from  ' + @tablename 
         exec sp_executesql @sqlstr,N'@result int output',@return output
         RETURN 
    END
    --调用
    declare @return int
    exec getcount 'cj',@return output
    select @return
    --result           
    ----------- 
    7
      

  10.   

    CREATE   PROCEDURE  usp_recordNumOutPut
    @tableName varchar(50),        --传入的表名
    @recordNum int out
    AS
    exec ('select * from '+@tableName)
    set @recordNum=@@rowcount
    go--select * from tbnamedeclare @aa int
    exec usp_recordNumOutPut 'tbname',@aa out
    select @aa