sql server 事务处理

日期:2020-04-29编辑作者:数据库

自动提交事务 默认management studio是自动提交事务,即一个语句就一个事务。 隐式事务 打开Sql Server Managerment Studio,登陆到实例当中。 Tools - Options Query Execution - SQL Server - ANSI 将SET IMPLICIT_TRANSACTIONS前打上勾 这样,当一个事务结束,新的语句会自动开启一个新的事务。此为隐式事务。事务最终也是通过我们的commit或rollback来结束。 显式事务 begin transaction delete from erpdb.dbo.mtl_categories_b rollback transaction --commit transaction

1 /*查看@@lock_timeout*/
2 print @@lock_timeout     --LOCKTIMEOUT 的缺省值是 -1,这意味着将没有锁超时
3 
4 set lock_timeout 1800
5 print @@lock_timeout

 

回滚事务: ROLLBACK TRANSACTION 。例如:

 

 

1 /*在事务内设置保存点*/
2 begin transaction mytran         --启动事务
3 select * from student
4 save transaction s1      --设置保存点。
5 insert into student values(200,'王洪','男',22)   --插入另一个学生的记录
6 rollback transaction s1   --事务回滚到保存点s1
7 commit transaction
8 go 
9 select * from student     --陈浩插入到表中而王洪没有插入到表中

 

 

 

 

1.显示事务

 

SQL Server没有使用BEGIN TRANSACTION语句启动显式事务,或隐性事务模式未打开,将以自动提交模式进行操作。

 

操作

相应的SQL语句

创建数据库

CREATE DATABASE

修改数据库

ALTER DATABASE

删除数据库

DROP DATABASE

恢复数据库

RESTORE DATABASE

加载数据库

LOAD DATABASE

备份日志文件

BACKUP LOG

恢复日志文件

RESTORE LOG

更新统计数据

UPDATE STATISTICS

授权操作

GRANT

复制事务日志

DUMP TRANSACTION

磁盘初始化

DISK INIT

更新使用sp_configure系统存储过程更改的配置选项的当前配置值

RECONFIGURE

 

隐性事务模式设置为打开之后,当SQL Server首次执行某些Transact-SQL语句时,都会自动启动一个事务,而不需要使用 BEGIN TRANSACTION 语句。

 

 

 

 

 

事务有4个属性,称为ACID(原子性、一致性、隔离性和持久性)

2.自动提交事务:自动提交模式是SQL Server的默认事务管理模式。每个Transact-SQL语句在完成时,都被提交或回滚。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。

 

 

 

 

 

 

 

持久性  事务完成之后,它对于系统的影响是永久性的。

 

例如:

 

2.自动提交事务

 

 

 

 

 

数据的锁定

 

隐性事务模式可以通过使用SET语句来打开或者关闭,其语法格式为: SET IMPLICIT_TRANSACTIONS { ON | OFF } 

1 /*在select,insert,update和delete等语句中使用表级锁定提示*/
2 set transaction isolation level serializable
3 begin tran
4     select * from student with(tablock)
5     exec sp_lock
6 commit tran
7 
8 select object_name(1013578649)

原子性   事务必须是原子工作单元。对于其数据修改,要么全都执行,要么全都不执行。

控制分布式事务的T-SQL语句包括: begin distributed transaction 、 commit transactioncommit work 、 rollback transactionrollback work 

 

 

 

 

www.129028.com金沙,在事务内设置保存点: SAVE TRANSACTION 。保存点是如果有条件的取消事务的一部分,事务可以返回的位置。例如:

在发出COMMIT或ROLLBACK语句之前,该事务一直保持有效。在第一个事务被提交或回滚之后,下次当连接执行这些语句的任何语句时,SQL Server都将自动启动一个新事务。

3. 锁定提示。例如:

 

 

不能用于事务的操作:

 

 

本文由www.129028.com金沙发布于数据库,转载请注明出处:sql server 事务处理

关键词:

SQL Server 2000的安全配置

SQLserver2000数据库应用非常广泛,一旦出现安全问题,造成的损失往往难以估量!应提前预防,防患于未然。这里,我...

详细>>

如何查看某个查询用了多少TempDB空间www.129028.com金沙

DECLARE @read BIGINT, @write BIGINT; SELECT @read = SUM(num_of_bytes_read), @write = SUM(num_of_bytes_written) FROM tempdb.sys.database_files AS DBFJOI...

详细>>

浅析SQL语句中GROUP BY的用法

GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按 ITEM.ITEMNUM这个字段分组,那其他字...

详细>>

微软总是试图使它的软件安装尽可能地简单顺www.129028.com金沙

如果你没有特意记录安装日期,那么有没有办法从SQL Server里查询到呢?想想我们在安装的时候,肯定会有Windows认证登...

详细>>