代码改变世界

set row count

2010-03-31 16:06  爱研究源码的javaer  阅读(300)  评论(0编辑  收藏  举报
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。  
   
   
   
  说明     设置   SET   ROWCOUNT   选项将使大多数   Transact-SQL   语句在已受指定数目的行影响后停止处理。这包括触发器和   INSERT、UPDATE   及   DELETE   等数据修改语句。ROWCOUNT   选项对动态游标无效,但限制键集的行集和不感知游标。使用该选项时应谨慎,它主要与   SELECT   语句一起使用。  
   
   
  如果行数的值较小,则   SET   ROWCOUNT   替代   SELECT   语句   TOP   关键字。  
   
  SET   ROWCOUNT   的设置是在执行或运行时设置,而不是在分析时设置。  
   
  权限  
  SET   ROWCOUNT   权限默认授予所有用户。  
   
  示例  
  SET   ROWCOUNT   在指定的行数后停止处理。在下例中,注意有   x   行满足预付款少于或等于   $5,000   的条件;但是,从更新所返回的行数中可以看出并非所有的行都得到处理。ROWCOUNT   影响所有的   Transact-SQL   语句。  
   
  USE   pubs  
  GO  
  SELECT   count(*)   AS   Cnt  
  FROM   titles    
  WHERE   advance   >=   5000  
  GO  
   
  下面是结果集:  
   
  Cnt                
  -----------    
  11                      
   
  (1   row(s)   affected)  
   
  现在,将   ROWCOUNT   设置为   4,并更新预付款等于或大于   $5,000   的所有行。  
   
  --   SET   ROWCOUNT   to   4.  
  SET   ROWCOUNT   4  
  GO  
  UPDATE   titles  
  SET   advance   =   5000  
  WHERE   advance   >=   5000  
  GO