SQL中事务以及全局变量的使用
事务的定义
简单的说,事务处理可以用来维护数据库的完整性,保证一批SQL语句要么全执行,要么全部不执行
事务的特性
原子性 一致性 持久性 隔离性 注:一元九个
事务的使用
select * from MR_Upload_Manual_Excel where Excel_ID='M000181431'
begin tran --开始事务
declare @count int --声明变量
set @count=0 --变量初始化
update MR_Upload_Manual_Excel set Courier_Company_Full_Name='Test444' where Excel_ID='M000181431'
set @count=@@ROWCOUNT --赋值受影响行数
if(@count=1) --判断受影响行数是否符合预期
begin ----begin... end ...
select * from MR_Upload_Manual_Excel where Excel_ID='M000181431'
commit tran --提交事务
end
else
begin
select '执行出错,事务回滚'
rollback tran ---回滚事务
end
begin tran
declare @count int
set @count=0
update MR_Upload_Manual_Excel set Courier_Company_Full_Name='Test33' where Excel_ID='M000181431'
set @count +=@@ROWCOUNT
update MR_Upload_Manual_Excel set Courier_Company_Full_Name='Test44' where Excel_ID='M000181451'
set @count +=@@ROWCOUNT
if(@count=2)
begin
select * from MR_Upload_Manual_Excel
commit tran
end
else
begin
print '出错'
rollback tran
end
SQL Server中分为局部变量和全局变量
- 全局变量:名称以@@开头(系统事先定义,用户只读)
- 局部变量:名称以@开头(用户自己声明和赋值)
SQL Server中的全局变量:
1、@@CONNECTIONS
返回自上次SQL启动以来连接或试图连接的次数。
2、@@CPU_BUSY
返回自上次SQL启动以来CPU的工作时间,单位为毫秒(基于系统计时器的分辨率)。
3、@@CURSOR_ROWS
返回连接上最后打开的游标中当前存在的合格行的数量。
4、@@DATEFIRST
返回 SET DATEFIRST 参数的当前值,SET DATEFIRST 参数指明所规定的每周第一天:1 对应星期一,2 对应星期二,依次类推,用 7 对应星期日。
5、@@DBTS
返回当前timestamp数据类型的值。这一timestamp值保证在数据库中是唯一的。
6、@@DEFAULT_LANGID
返回默认的本地语言标识符(ID)。
7、@@ERROR
返回最后执行的SQL语句的错误代码
8、@@FETCH_STATUS
返回被fetch语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
9、@@IDENTITY
返回最后插入的标识值。
10、@@IDLE
返回自上次SQL启动后闲置的时间,单位为毫秒(基于系统计时器的分辨率)。
11、@@IO_BUSY
返回自上次SQL启动后用于执行输入和输出操作的时间,单位为毫秒(基于系统计时器的分辨率)。
12、@@LANGID
返回当前所使用语言的本地语言标识符(ID)。
13、@@LANGUAGE
返回当前使用的语言名。
14、@@LOCK_TIMEOUT
返回当前会话的当前锁超时设置,单位为毫秒。
15、@@MAX_CONNECTIONS
返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值
16、@@MAX_PRECISION
返回 decimal和numeric数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。
17、@@MICROSOFTVERSION
返回微软用于数据库引擎的SQLServer版本的内部跟踪号。
18、@@NESTLEVEL
返回当前存储过程执行的嵌套层次(初始值为 0)。
19、@@OPTIONS
返回当前SET选项的信息。
20、@@PACK_RECEIVED
返回自上次SQL启动后从网络上读取的输入数据包数目。
21、@@PACK_SENT
返回自上次SQL启动后写到网络上的输出数据包数目。
22、@@PACKET_ERRORS
返回自上次SQL启动后在SQ连接上发生的网络数据包错误数。
23、@@PROCID
返回当前过程的存储过程标识符 (ID) 。
24、@@REMSERVER
返回远程SQL Server数据库服务器在登录记录中显示的名称。
25、@@ROWCOUNT
返回受上一SQL语句影响的行数。
26、@@SERVERNAME
返回运行SQL Server的本地服务器名称。
27、@@SERVICENAME
返回SQL正在其下运行的注册表键名。若当前实例为默认实例,则 @@SERVICENAME 返回 MSSQLServer;若当前实例是命名实例,则该函数返回实例名。
28、@@SPID
返回当前用户进程的服务器进程标识符 (ID)。
29、@@TEXTSIZE
返回SET语句TEXTSIZE选项的当前值,它指定select语句返回的text或imgae数据的最大长度,以字节为单位。
30、@@TIMETICKS
返回一刻度的微秒数。
31、@@TOTAL_ERRORS
返回自上次SQL启动后所遇到的磁盘读/写错误数。
32、@@TOTAL_READ
返回自上次SQL启动后读取磁盘(不是读取高速缓存)的次数。
33、@@TOTAL_WRITE
返回自上次SQL启动后写入磁盘的次数。
34、@@TRANCOUNT
返回当前连接的活动事务数。
35、@@VERSION
返回当前安装SQL Server的日期、版本和处理器类型。
@@ERROR:当前一个语句遇到错误,则返回错误号,否则返回0。
需要注意的是@ERROR在每一条语句执行后会被立刻重置,因此应该在要验证的语句执行后检查数值或者是将它保存到局部变量中以备将来使用。
@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int整性。
--@@ROWCOUNT和@@ERROR变量的值,在执行完一条语句后总是会发生变化,所以我们将他们作为判断的依据的时候应该首先保存在局部变量中。他们反映的都是紧接着的上一条语句对他们的影响!
SQL中事务以及全局变量的使用的更多相关文章
- SQL 中事务的分类
先讲下事务执行流程: BEGIN和COMMIT PRINT @@TRANCOUNT --@@TRANCOUNT统计事务数量 BEGIN TRAN PRINT @@TRANCOUNT BEGIN TRA ...
- 存储过程中使用事务,sql server 事务,sql事务
一.存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 ...
- sql server中局部变量与全局变量的 申明与赋值(转)
来源:http://www.111cn.net/database/mssqlserver/36734.htm 例子:http://www.cnblogs.com/sunxi/p/4497493.htm ...
- SQL Server中事务、锁定和阻塞
事务是什么 在SQL Server中事务是构成一个工作逻辑单元的一系列任务,也就说多个任务放在一起执行,这些任务要么全部执行成功,要么全部执行失败. 通过事务我们可以保证数据的完整性,例如:用户A给用 ...
- SQL server中事务的四个属性特征(ACID)
事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...
- 第十七周翻译-SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志
SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志 作者:Tony Davis,2012/01/27 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部分:SQL ...
- SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志(译)
SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志 作者:Tony Davis,2012/01/27 系列 本文是进阶系列的一部分:SQL Server中事务日志管理的步骤 当事情 ...
- SQL中的全局变量和局部变量(@@/@)
在SQL中,我们常常使用临时表来存储临时结果,对于结果是一个集合的情况,这种方法非常实用,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,另外,当一个SQL语句中的某些元素经常 ...
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
随机推荐
- CF 559C - Gerald and Giant Chess (组合计数)
\(C_{x+y}^y\)的公式,DP容斥删多余贡献. #include <cstdio> #include <iostream> #include <cstring&g ...
- 在Kubernetes上部署k6的详细步骤
k6介绍 k6是一款使用go语言编写的开源测试工具,支持用户编写测试脚本,解决了JMeter不易代码化的缺点.它的主要特点有 提供了友好的 CLI 工具 使用 JavaScript 代码编写测试用例 ...
- ftp: connect: No route to host 解决方案
实验环境: centos7 x2 server-vsftp:192.168.1.32 client:192.168.95 客户端测试访问 ftp服务器 报错:ftp: connect: No rout ...
- PerfView专题 (第七篇):如何洞察触发 GC 的 C# 代码?
一:背景 上一篇我们聊到了如何用 PerfView 洞察 GC 的变化,但总感觉还缺了点什么? 对,就是要跟踪到底是什么代码触发了 GC,这对我们分析由于 GC 导致的 CPU 爆高有非常大的参考价值 ...
- vscode 插件 Cnblogs Client For VSCode
目录 简介 主要功能 登录 / 授权 将本地 markdown 文件发布到博客园 博客园博文列表 将本地文件关联到博客园博文 拉取远程博文内容更新本地文件 图片上传 博文分类管理 导出 pdf 博文设 ...
- 无密码正向直连内网linux目标机复现
无密码正向直连内网linux目标机复现 文章来自sxf大佬klion https://mp.weixin.qq.com/s/GPPvci8qKuvc5d3Q7Cer7Q 场景说明 前期通过一些 Rce ...
- C++ 由快排学习到的的随机数等知识
起: 力扣的912题 数组排序 ,想着先用快速排序来写写,在实际用c++编写的时候,有一些之前没注意到的细节问题造成了一些麻烦. 912. 排序数组 - 力扣(LeetCode) 快排思想 每次以数组 ...
- Java 多线程:基础
Java 多线程:基础 作者:Grey 原文地址: 博客园:Java 多线程:基础 CSDN:Java 多线程:基础 顺序.并行与并发 顺序(sequential)用于表示多个操作『依次』处理.比如把 ...
- 华南理工大学 Python第5章课后小测-2
1.(单选)下面语句的输出结果是: ls = [] def func(a, b): ls.append(b) return a*b s = func("hi", 2) print( ...
- 【设计模式】Java设计模式 - 享元模式
Java设计模式 - 享元模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起记录分享自己 ...