from:http://blog.163.com/rihui_7/blog/static/212285143201381343240404/

返回受上一语句影响的行数。 ROWCOUNT_BIG." xmlspace="preserve" style="line-height: 22.75px;">如果行数大于 20 亿,请使用 ROWCOUNT_BIG。

 Transact-SQL 语法约定

@@ROWCOUNT 

Transact-SQL 语句可以通过下列方式设置 @@ROWCOUNT 的值:

  • 将 @@ROWCOUNT 设置为受影响或被读取的行的数目。 可以将行发送到客户端,也可以不发送。

  • 保留前一个语句执行中的 @@ROWCOUNT。

  • 将 @@ROWCOUNT 重置为 0 但不将该值返回到客户端。

执行简单分配的语句始终将 @@ROWCOUNT 值设置为 1。 不将任何行发送到客户端。 'Generic Text'." xmlspace="preserve" style="line-height: 22.75px;">这些语句的示例如下:SET @local_variable、RETURN、READTEXT 以及不带查询的 Select 语句,如 SELECT GETDATE() 或 SELECT 'Generic Text'。

在查询中进行分配或使用 RETURN 的语句将 @@ROWCOUNT 值设置为受查询影响的行数或查询读取的行数,例如:SELECT @local_variable = c1 FROM t1。

数据操作语言 (DML) 语句将 @@ROWCOUNT 值设置为受查询影响的行数,并将该值返回到客户端。 DML 语句不会将任何行发送到客户端。

DECLARE CURSOR 和 FETCH 将 @@ROWCOUNT 值设置为 1。

EXECUTE 语句保留前一个 @@ROWCOUNT。

USE、SET <option>、DEALLOCATE CURSOR、CLOSE CURSOR、BEGIN TRANSACTION 或 COMMIT TRANSACTION 等语句将 ROWCOUNT 值重置为 0。

以下示例执行 UPDATE 语句并使用 @@ROWCOUNT 来检测是否更改了任何一些行。

USE AdventureWorks2012; GO UPDATE HumanResources.Employee  SET JobTitle = N'Executive' WHERE NationalIDNumber = 123456789 IF @@ROWCOUNT = 0 PRINT 'Warning: No rows were updated'; GO

返回上一语句受影响的行数!和@ERROR一样的特性,在每一条语句执行后都将被重置,如果将来使用需要将变量保存到局部变量中。任何不返回的语句都将这个变量置为0!比如经常使用的IF语句。废话少说,上代码!
DECLARE @RowCountVar INT
Update AF_CarOil SET OilType = '五号汽油'--执行后@@ROWCOUNT为2
SET @RowCountVar = @@ROWCOUNT --执行后@@ROWCOUNT为1
IF @@ROWCOUNT = 1  --执行后@@ROWCOUNT为0
BEGIN
    PRINT '影响的行数为1'
PRINT @@ROWCOUNT
END
IF @RowCountVar <> 0
BEGIN
    PRINT '受影响的行数为:' + STR(@RowCountVar)
END
-----------------------------------------------------------------
 
(2 行受影响)
影响的行数为 1
0
受影响的行数为:        2
分析:上面的代码中在执行Update语句之后,受影响的行数为2行,然后将受影响的行数保存到事先声明的局部变量中,赋值语句实际上影响的行数为1行,在下面的IF语句中进行了跳转,这个地方是关键,这并不是Update语句受影响的行数是1,而是将@@ROWCOUNT将的赋给局部变量的过程中变成了1。在执行后IF @@ROWCOUNT = 1的判断之后@@ROWCOUNT的数值重新被赋值为了0!

获取Sqlserver上一句语句执行后受影响的行数@@rowCount的更多相关文章

  1. SQL 语句执行后同步返回结果条数

    PgSQL SELECT COUNT(*) OVER() AS res_count FROM table WHERE ... MySQL mysql> SELECT SQL_CALC_FOUND ...

  2. EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值

    一: 执行sql语句,返回受影响的行数 在mysql里面,如果没有影响,那么返回行数为  -1 ,sqlserver 里面  还没有测试过 using (var ctx = new MyDbConte ...

  3. php mysql_affected_rows获取sql执行影响的行数

    php mysql_affected_rows函数用于获取执行某一SQL语句(如INSERT,UPDATE 或 DELETE )所影响的行数,本文章向大家介绍php mysql_affected_ro ...

  4. mysql 存储过程:提供查询语句并返回查询执行影响的行数

    mysql 存储过程:提供查询语句并返回查询执行影响的行数DELIMITER $$ DROP PROCEDURE IF EXISTS `p_get_select_row_number`$$ CREAT ...

  5. C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?

    如何获取二维数组中的元素个数呢? int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9}};//定义一个3行3列的二维数组int row = array. ...

  6. 【oracle】存储过程中获取delete语句执行后删除的记录数

    dbms_output.put_line(to_char(sql%rowcount));

  7. C#获取当前运行的源代码的文件名和当前源代码的行数的方法

    在C#中记录日志时,为了以后查找错误或者跟踪的方便,最好能记录下出错的源代码的文件名和出错的源代码的行数. 这2个方法如下: /// <summary>         /// 取得当前源 ...

  8. sql server ExecuteNonQuery()返回受影响行数不适用select语句

    SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数. 对于 UPDATE.INSERT 和 DELETE 语句,返回值为该命令所影响 ...

  9. SqlServer性能优化 Sql语句优化(十四)

    一:在较小的结果集上上操作 1.仅返回需要的列 2.分页获取数据 EF实现分页: public object getcp(int skiprows,int currentpagerows) { HRU ...

随机推荐

  1. C和C指针小记(二)-注释,三字母词,编译选项

    课后的几个问题: 1) int x/*blah blah*/y; 会有什么问题? 答:编译器报错,语句中不应该有多行注释 单行注释也应该放到语句后面或者独自占一行. 2)打出下面一行字符串(包括引号) ...

  2. zabbix监控Windows-server

    官网下载客户端 https://www.zabbix.com/download 2.创建自定义文件夹(路径任意),我创建的为C:\zabbix 3.将下载的文件存放至该目录,注意操作系统位数,去对应b ...

  3. URL地址中的#

    1.#的涵义 代表网页中的一个位置.井号后面的字符,就是该位置的标识符.比如, http://www.baidu.com/index.html#one 就代表网页index.html的one位置.浏览 ...

  4. go,gcvis,golang, privoxy,and git proxy

    /etc/init.d/privoxy restartexport http_proxy=http://127.0.0.1:8118export https_proxy=http://127.0.0. ...

  5. /var/run/utmp文件操作函数

    相关函数:getutent, getutid, getutline, setutent, endutent, pututline, utmpname utmp 结构定义如下:struct utmp{  ...

  6. go不在dock显示运行

    用这种方法就可以了go build -ldflags -H=windowsgui XXX.go

  7. LED客显的类

    using System; using System.IO.Ports; namespace Common { public class LedHelper { ; private static st ...

  8. 使用监听器解决路径问题,例如在jsp页面引入js,css的web应用路径

    使用监听器解决路径问题,例如在jsp页面引入js,css的web应用路径 经常地,我们要在jsp等页面引入像js,css这样的文件,但是在服务器来访问的时候,这时间就有关到相对路径与绝对路径了.像网页 ...

  9. MongoDB update修改器: 针对Arrays的$修改器 $push $pull $pop

    针对Arrays的$修改器 $push : { $push: { key: value } } 它是用来对Array (list)数据类型进行 增加 新元素的,相当于我们Python中 list.ap ...

  10. nessus的安装

    nessus安装 .下载地址 http://www.tenable.com/products/nessus/select-your-operating-system .获取注册码 www.nessus ...