CREATE PROCEDURE p_1 @recordcount int output  ASdeclare @str Nvarchar(3000)
declare @table_name varchar(90)set @table_name='a3p_vga'
set @str='select  @recordcount=count(products_ph) from '+ @table_name
EXEC sp_executesql @str,N'@recordcount Int Output',@recordcount Output
GO
Declare @recordcount Int
EXEC p_1 @recordcount Output
Select @recordcount

解决方案 »

  1.   

    --建立测试环境
    Create table TEST
    (Name char(10))
    --插入数据
    Insert TEST Values('AA')
    Insert TEST Values('BBBB')
    GO
    --建立存储过程
    CREATE PROCEDURE p_1 @recordcount int output  ASdeclare @str Nvarchar(3000)
    declare @table_name varchar(90)set @table_name='TEST'
    set @str='select  @recordcount=count(Name) from '+ @table_name
    EXEC sp_executesql @str,N'@recordcount Int Output',@recordcount Output
    GO
    --测试
    Declare @recordcount Int
    EXEC p_1 @recordcount Output
    Select @recordcount
    --删除测试环境
    Drop Table TEST
    Drop PROCEDURE p_1 
    --结果
    /*
    2
    */
      

  2.   

    按照写的是可以,我再检查检查,如果用command对象取值,怎么取呀?
    response.write "记录总数(1):"&cmd.Parameters("@recordcount")&"<br>"
    这样取没错吧