--死循环语句
select top 1 * from sysobjects 
while @@rowcount > 0 
begin
  select top 1 * from sysobjects 
end 
--但是,如果加上 print @@rowcount 就不死循环.
select top 1 * from sysobjects 
while @@rowcount > 0 
begin
  select top 1 * from sysobjects 
  print @@rowcount 
end 请高手帮我分析分析.

解决方案 »

  1.   

    print 1
    select @@rowcount--print的影响行数为0select top 1 * from sysobjects 
    while @@rowcount > 0 
    begin
      select top 1 * from sysobjects 
      print @@rowcount 
    end 循环中print @@rowcount的影响行数为0所以循环停止
      

  2.   

    在这一点上select 与print不同比较一下下面的结果的不同select 1
    select @@rowcount
    --
    print 1
    select @@rowcount
      

  3.   

    print返回的是一个消息,而非一条记录。
      

  4.   

    楼上已经说了原因了不过我不明白lz为什么要这样写
    select top 1 * from sysobjects 
    while @@rowcount > 0 
    begin
      select top 1 * from sysobjects 
      --print @@rowcount  假设不要这个
    end sysobjects 是肯定有东西的啊,所以无论如何,你的@@rowcount 都会大于1
    那么这样的代码还有什么意义呢?