CREATE PROCEDURE [dbo].[www] 
@tbname varchar(200)
AS
declare @num int
set @ss=N'select @num = count(*) from '+@tbname
exec sp_executesql  @ss ,N'@num int output',@num output
print @num
愉快的登山者       ⊙
◢◣◢◣◢◣

解决方案 »

  1.   

    CREATE PROCEDURE [dbo].[www] 
    @tbname varchar(200)
    AS
    declare @num int
    declare @sql nvarchar(2000)
    set @sql='select @num=select count (*)from'+@tbname)
    exec sp_executesql @sql,'N'@num int output',@num out
    print @num
    GO
      

  2.   

    CREATE PROCEDURE [dbo].[www] 
    @tbname varchar(200)
    AS
    declare @num int
    declare @ss varchar(200)
    set @ss=N'select @num = count(*) from '+@tbname
    exec sp_executesql  @ss ,N'@num int output',@num output
    print @num
    GO
    -------------------------------------------
    exec www 'test'
    --------------------------------------------
    服务器: 消息 214,级别 16,状态 2,过程 sp_executesql,行 7
    过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
    --------------------------------------------
    谢谢:
    愉快的登山者       ⊙
    ◢◣◢◣◢◣
      

  3.   

    CREATE PROCEDURE [dbo].[www] 
    @tbname varchar(200)
    AS
    declare @num int
    declare @sql nvarchar(2000)
    set @sql='select @num=select count (*)from'+@tbname
    exec sp_executesql @sql,N'@num int output',@num out
    print @num
    GO
    ------------------------------------------------------
    exec www 'test'
    ------------------------------------------------------
    服务器: 消息 156,级别 15,状态 1,行 1
    在关键字 'select' 附近有语法错误。
    ------------------------------------------------------
    谢谢:邹建
      

  4.   

    CREATE PROCEDURE [dbo].[www] 
    @tbname varchar(200)
    AS
    declare @num varchar(2000)
    declare @sql nvarchar(2000)
    set @sql=N'select  '+@num+N'=select count (*) from '+@tbname
    exec sp_executesql @sql,N'@num int output',@num out
    print @sql
    print @num
    GO
    ----------------------------
    exec www 'test'
    没有错误,怎么也没有输出?print 呢?
      

  5.   

    CREATE PROCEDURE [dbo].[www] 
    @tbname varchar(200)
    AS
    declare @num varchar(2000)
    declare @sql nvarchar(2000)
    set @sql='select  '+@num+ '=select count (*) from '+@tbname + ' print @num'
    Exec(@sql)
    GO
      

  6.   

    Create Procedure GetMaxID
    @TableName varchar(100), @ID int output
    as
    begin
    declare @sql nvarchar(1000)
    set @sql='select @ID = count(ID) from '+@TableName
    exec sp_executesql @sql,N'@id int output',@id output
    end
      

  7.   

    谢谢各位!
    差不多弄好了!
    但是我的目的当然不是要把总纪录条数print出来,
    而是output出来,但是我不知道怎么察看output出来的值是不是对的
    所以只好用print
    晴问:怎么察看output出来的值是不是对的?谢谢!再加30分马上借贴!
    谢谢!谢谢!谢谢!谢谢!
      

  8.   

    这是我的CREATE    proc count_tb
      
      @tb_name varchar(50)
      
    asdeclare @sql nvarchar(300)
    declare @parminfo nvarchar(100)
    declare @cnt int
     set @sql=N'select @cnt=count(*) from  '+@tb_name
     set @parminfo=N'@cnt int output'
     exec SP_EXECUTESQL @sql,@parminfo, @cnt OUTPUT
    return @cntGO
      

  9.   

    怎么察看output出来的值是不是对的?
      

  10.   

    存储过程中的OUTPUT型参数
    在查询分析其中执行时好想不显示
    怎么察看output出来的值是不是对的?
      

  11.   

    CREATE PROCEDURE [dbo].[www] 
    @tbname varchar(200),
    @num int output
    AS
    declare @sql nvarchar(2000)
    set @sql='select @num=select count (*) from'+@tbname
    exec sp_executesql @sql,N'@num int output',@num out
    GO
    --调用
    declare @num int
    exec www 'test',@num out
    select @num as 结果
      

  12.   

    qa中试试这样看
    declare @out int
    exec @out= 存储过程名 '表名'
    print @out
    go