大家观察下面SQL语句:
use pubs
go-----1---
set rowcount 5
select *
from authors
----------
-----2------
select top 5 * 
from authors
-------------这两条语句的最终都是返回表authors中的前5条记录;
但问题是运行完第1条语句后 再运行“select * from authors”的时候查出的还是前5条记录,
甚至是其他表或其他数据库中的表 查询出来后也是前5条记录
除非关闭查询分析器的窗口或断开连接才能正常运行这是为什么呢?
怎么才能关闭set命令

解决方案 »

  1.   

    use pubs 
    go -----1--- 
    set rowcount 5 
    select * 
    from authors 
    ---------- 
    -----2------ 
    select top 5 *  
    from authors 
    ------------- 
    set rowcount 0select * from authors
      

  2.   

    SET ROWCOUNT
    使 Microsoft® SQL Server™ 在返回指定的行数之后停止处理查询。 语法
    SET ROWCOUNT { number | @number_var } 参数
    number | @number_var是在停止给定查询之前要处理的行数(整数)。注释
    建议将当前使用 SET ROWCOUNT 的 DELETE、INSERT 和 UPDATE 语句重新编写为使用 TOP 语法。有关更多信息,请参见 DELETE、INSERT 或 UPDATE。对于在远程表和本地及远程分区视图上执行的 INSERT、UPDATE 和 DELETE 语句,忽略 SET ROWCOUNT 选项设置。若要关闭该选项(以便返回所有的行),请将 SET ROWCOUNT 指定为 0。