事务的定义

简单的说,事务处理可以用来维护数据库的完整性,保证一批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中事务以及全局变量的使用的更多相关文章

  1. SQL 中事务的分类

    先讲下事务执行流程: BEGIN和COMMIT PRINT @@TRANCOUNT --@@TRANCOUNT统计事务数量 BEGIN TRAN PRINT @@TRANCOUNT BEGIN TRA ...

  2. 存储过程中使用事务,sql server 事务,sql事务

    一.存储过程中使用事务的简单语法       在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 ...

  3. sql server中局部变量与全局变量的 申明与赋值(转)

    来源:http://www.111cn.net/database/mssqlserver/36734.htm 例子:http://www.cnblogs.com/sunxi/p/4497493.htm ...

  4. SQL Server中事务、锁定和阻塞

    事务是什么 在SQL Server中事务是构成一个工作逻辑单元的一系列任务,也就说多个任务放在一起执行,这些任务要么全部执行成功,要么全部执行失败. 通过事务我们可以保证数据的完整性,例如:用户A给用 ...

  5. SQL server中事务的四个属性特征(ACID)

    事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...

  6. 第十七周翻译-SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志

    SQL Server中事务日志管理的阶梯,级别5:以完全恢复模式管理日志 作者:Tony Davis,2012/01/27 翻译:赖慧芳 译文: 该系列   本文是Stairway系列的一部分:SQL ...

  7. SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志(译)

    SQL Server中事务日志管理的步骤,第5级:完全恢复模式管理日志 作者:Tony Davis,2012/01/27 系列 本文是进阶系列的一部分:SQL Server中事务日志管理的步骤 当事情 ...

  8. SQL中的全局变量和局部变量(@@/@)

    在SQL中,我们常常使用临时表来存储临时结果,对于结果是一个集合的情况,这种方法非常实用,但当结果仅仅是一个数据或者是几个数据时,还要去建一个表,显得就比较麻烦,另外,当一个SQL语句中的某些元素经常 ...

  9. 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结

    为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...

随机推荐

  1. Luogu3243 [HNOI2015]菜肴制作 (拓扑排序)

    题面毒人,其实就是叫你反图跑拓扑 #include <iostream> #include <cstdio> #include <cstring> #include ...

  2. 业界压测平台与JMeter的对比

    压测平台是什么? 压测,即压力测试,作用是对各种服务对象进行压力测试以获得该服务处于或超过预期负载时系统的运行情况,进而判断系统在峰值负载或超出最大负载情况下的处理能力. 压测工具,顾名思义,就是用来 ...

  3. host,nslookup,dig 工具安装

    DNS-测试工具 在centos7.9 中 安装bind后发现缺少,检测工具 工具包安装: 1 [root@server]# yum install -y bind-utils 安装后再次查询,发现已 ...

  4. 记录一个i变量引发的事故

    概述 近期开发中遇到一个特别的问题,觉得很有必要与你下来.就是由于在开发中一个很小的疏忽,导致了很大的问题,是什么呢? 现象 我的程序突然引发了v8内部的错误,提示都是c++的,如下.程序一启动就直接 ...

  5. js运算符和逻辑分支

    运算符 1.拼接运算符:+,加号两边只要有一边出现字符串就是拼接 2.算术运算符  如:2+3: 3.赋值运算符+=,-=,/=,*= 4.关系运算符>,<,==,=== != !== ! ...

  6. [HDU3976]Electric resistance(电阻)(信竞&物竞)(高斯消元)

    题面 Problem Description Now give you a circuit who has n nodes (marked from 1 to n) , please tell abc ...

  7. 这三大特性,让 G1 取代了 CMS!

    大家好,我是树哥. 之前我们聊过 CMS 回收器,但那时候我们说 CMS 回收器已经落伍了,现在应该是用 G1 回收器的时候了.那么 G1 回收器到底有什么魔力,它比 CMS 回收器相比强在哪里呢?今 ...

  8. 创建swarm集群并自动编排

    1.基础环境配置 主机名 master node1 node2 IP地址 192.168.***.1 192.168.***.2 192.168.***.3 角色     管理节点 工作节点 工作节点 ...

  9. QT学习(四)----360界面制作(1)

    参照网上的资料,模仿了一份360新特效的界面. 源代码在:http://download.csdn.net/detail/zhangyang1990828/5238013 360真实效果:(最好自己打 ...

  10. 了解Elasticsearch写入磁盘的数据

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484171&idx=1&sn=985a71a ...