create table t 

a int 

insert into t values(1) 
insert into t values(2) 
insert into t values(3) 
insert into t values(4) 
go declare @x nvarchar(4000) 
declare @i int 
select @x= 'select * from t' 
select @x= @x+ ' select @count=@@rowcount ' 
exec sp_executesql @x,N'@count int output', @i output
select @i

解决方案 »

  1.   


    create table t 

    a int 

    insert into t values(1) 
    insert into t values(2) 
    insert into t values(3) 
    insert into t values(4) 
    go declare @x nvarchar(100) 
    declare @i int 
    select @x= 'select @i=count(*) from t' 
    exec sp_executesql @x,N'@i int output',@i output
    print @i
      

  2.   

    declare @x nvarchar(4000) 
    declare @i int 
    select @x= 'select * from t' 
    select @x= @x+ ' select @count=@@rowcount ' 
    exec sp_executesql @x,N'@count int output', @i output
    select 影响的行数=@i
    /*
    a           
    ----------- 
    1
    2
    3
    4(所影响的行数为 4 行)影响的行数       
    ----------- 
    4(所影响的行数为 1 行)*/
      

  3.   


    declare @x nvarchar(100) 
    declare @i int 
    select @x= 'select * from t' 
    select @x= @x+ ' set @s=@@rowcount ' 
    exec sp_executesql @x,N'@s int output',@i output
    select @i
      

  4.   

    declare @x nvarchar(100),@i int
    select @x= 'select @i=count(*) from t'
    exec sp_executesql @x,N'@i int output',@i output
    select @i4
      

  5.   

    create table t 

    a int 

    insert into t values(1) 
    insert into t values(2) 
    insert into t values(3) 
    insert into t values(4) 
    go 
    select top 1 1 n into # from t where a!=0 
    declare @x nvarchar(100) 
    declare @i int 
    set @x=N'select * from t;insert # select @@rowcount'
    exec(@x)
    select @i=n from #
    select @i
    go
    drop table #,t
    go