SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢?
使用SQL Server内置的全局变量@@ROWCOUNT即可,@@ROWCOUNT可以返回在当前数据库连接(SqlConnection)中,执行的上一条SQL语句影响了多少行数据,使用示例如下所示:
INSERT INTO [dbo].[Person]([PersonCode],[Name],[Age],[City])
VALUES
(N'P8000',N'Herry',50,N'Beijing')
,(N'P8001',N'Dan',50,N'Beijing')
,(N'P8002',N'Zen',52,N'Beijing')
,(N'P8003',N'Tim',52,N'Beijing')
,(N'P8004',N'Jhon',52,N'Beijing')
SELECT @@ROWCOUNT--返回5 UPDATE [dbo].[Person]
SET [PersonCode]=[PersonCode]
SELECT @@ROWCOUNT--返回5 UPDATE [dbo].[Person]
SET [PersonCode]=[PersonCode]
WHERE [PersonCode] IN (N'P8003',N'P8004')
SELECT @@ROWCOUNT--返回2 DELETE FROM [dbo].[Person]
WHERE [PersonCode] IN (N'P8003',N'P8004',N'P8001')
SELECT @@ROWCOUNT--返回3 DELETE FROM [dbo].[Person]
WHERE 1<>1
SELECT @@ROWCOUNT--返回0 SELECT * FROM [dbo].[Person]
SELECT @@ROWCOUNT--返回2
所以用ADO.NET执行INSERT,UPDATE,DELETE语句后,再使用查询SELECT @@ROWCOUNT查询出影响的行数返回给ADO.NET即可。不过要注意@@ROWCOUNT这个值要在INSERT/UPDATE/DELETE语句后立即获取,否则会被别的语句引响的行数代替,所以每次INSERT/UPDATE/DELETE后可以将它存入变量,等批处理结束后再RETURN
SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据的更多相关文章
- 数据库--MyBatis的(insert,update,delete)三种批量操作
转自:http://blog.csdn.net/starywx/article/details/23268465 前段时间由于项目赶期没顾上开发过程中的性能问题,现对部分代码进行优化的过程中发现在数据 ...
- 执行SQL语句---INSERT/UPDATE/DELETE
1.执行SQL语句函数: int mysql_query(MYSQL* mysql, const char * query); query:所有的sql语句 2.例子: 向children表插入一条语 ...
- SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)
原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...
- SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database)
原文:SQL Server 游标运用:查看一个数据库所有表大小信息(Sizes of All Tables in a Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容(C ...
- 解决SQL Server管理器无法连接远程数据库Error: 1326错误
解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...
- JDBC连接SQL server与ADO.NET连接Sql Server对比
JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet. 主流的有 ...
- 解决SQL Server管理器无法连接远程数据库的问题(转)
add by zhj: 本文最后那个数据库别名没搞明白,在我的测试中没有建别名,是可以的.远程登陆时,服务器名称: 服务器IP,端口号 (如223.42.155.248,52134 如果是默认端口号1 ...
- SQL Server 与 ADO.NET 数据类型映射
SQL Server 数据类型映射 .NET Framework 4.5 SQL Server 和 .NET Framework 基于不同的类型系统. 例如,.NET Framework Decima ...
- sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL\data\itsm_Data.MDF'。数据库 'my1' 正在使用该文件的解决方案
对数据库备份进行还原时遇到“sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQ ...
随机推荐
- JAVA多线程Thread VS Runnable详解
要求 必备知识 本文要求基本了解JAVA编程知识. 开发环境 windows 7/EditPlus 演示地址 源文件 进程与线程 进程是程序在处理机中的一次运行.一个进程既包括其所要执行的指令,也 ...
- Eclipse 下Spring cloud项目集成开发插件Spring Tool Suite (STS) 安装
安装eclipse插件 Help->Eclipse Marketplace-> Search中查找"Spring Tool Suite (STS) for Eclipse&quo ...
- CORS实践
$.ajax("http://yafbox.18touch.com/", { type: "POST", data: {id:id,v:v}, //header ...
- Pro * c Oracle 12c
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<sqlca.h> vo ...
- Css相关用法个人总结
Css相关用法个人总结
- C#语法之特性
在项目中经常可以看到在类属性上面有一个[]的东西,今天讲的东西就是它,它英文名是Attribute,中文名是特性. 一.什么是特性? 首先,我们肯定Attribute是一个类,下面是msdn文档对它的 ...
- 并发编程—— LinkedTransferQueue
1. 前言 Java 中总的算起来有 8 种阻塞队列. 我们分析了: 并发编程之 SynchronousQueue 核心源码分析 并发编程之 ConcurrentLinkedQueue 源码剖析 并发 ...
- [转]DevOps解决方案-腾讯云
本文转自:https://cloud.tencent.com/solution/devops 什么是 DevOps? DevOps 集文化理念.实践和工具于一身,可以提高企业高速交付应用程序和服务 ...
- ASP.NET MVC获取上传的路径
刚才有网友问及,怎样获取<input type='file'>的值? Insus.NET测试了一下,在Inetnet Explor之下似乎没有问题,但是FireFox获取到的只是文件名. ...
- 微信支付 统一下单 字段 body 为中文时 报【签名错误】解决方案(C# SDK)
方案一 如果你是从微信支付官网下载的 .NET C#[微信支付]API对应的SDK 调用示例 查看源码,会发现这个SDK中的 WxPayData 的类的 CalcHMACSHA256Hash 签名方法 ...