mssql sqlserver Rowcount同@@Rowcount关键字简介及区别说明


摘要:
下文讲述mssql sqlserver中rowCount及@@rowcount关键字的说明,如下所示:


sqlserver中这两个关键字看着相同,其实它们所表达的意思完全不同,下面听我一一道来


rowcount关键字说明:

在sqlserver中,我们可以通过设置rowcount属性,限制sqlserver返回相应的行数,如果返回到相应的行之,则sqlserver将返回,终止当前运行。
例:

   set rowcount 8
    select * from [数据表]
   ----以上脚本只会返回前8行数据
 /*
set rowcount 还可以对update delete 限定其处理行
*/
---例 更新符合条件的前8行数据:
    set rowcount 8
    update [数据表]  set [列] =''  where  ...
   set rowcount 0 
   ----以上脚本只会对符合条件的数据前8行进行处理
  ---同理,删除前8行数据
   set rowcount 8
    delete  [数据表]  set [列] =''  where  ...
   set rowcount 0 


set rowcount注意事项:
set rowcount在整个会话中有效,当不需要使用使用时,请使用set rowcount 0 取消其设置


@@Rowcount 关键字说明

@@rowCount 是一个系统全局变量
@@rowCount 里面记载着上一条sql脚本所影响的行数信息
例:

  select top 2 * from [数据表]
  select @@rowCount 
  ---当输出两条数据时,@@rowCount的结果为2

  update   [数据表] set ... where ...
  select @@rowCount   
   ----当对n条数据更新时,@@rowCount的结果为n
 
  ---同理删除数据 @@rowCount也返回一样的说明信息
  delete [数据表] set ... where ...
  select @@rowCount   
   ----当对n条数据删除时,@@rowCount的结果为n
  


set rowcount及@@rowcount关键字的区别:
1.set rowcount 是sqlserver的属性值,当设置此值后,sql脚本当处理行数达到设定值后,则会停止执行
2.@@rowCount返回最近一条sql脚本所影响的数据表行数信息