以下的文章主要向大家介绍的是实现SQL Server创建事务所要用到的Sql代码,我也是SQL Server学习方面的新手,前两天在无意间在一网站看见关于实现SQL Server创建事务所要用到的Sql代码,觉得挺好拿出来和大家一起分享。
Sql代码
- --借书的事务
- begin transaction
- declare @error int
- set @error = 0
- insert into borrows(rid,bid,borrowdate) values
- (5,10,2008-6-11)
- set @error = @error + @@error
- update books set bstate=1
- where bid=10
- set @error = @error + @@error
- if @error <> 0
- rollback transaction
- else
- commit transaction
- --借书的事务
- begin transaction
- declare @error int
- set @error = 0
- insert into borrows(rid,bid,borrowdate) values
- (5,10,2008-6-11)
- set @error = @error + @@error
- update books set bstate=1
- where bid=10
- set @error = @error + @@error
- if @error <> 0
- rollback transaction
- else
- commit transaction
事物三步曲:begin transaction,rollback transaction,commit transaction。在这里我们还看到了@error和@@error两个变量,前者是我们定义的局部变量,后者是sql server定义好的int型全局变量。定义变量的方式为:declare @error int 。
而设置局部变量的方式为set @error = 0,还有一种方式为 select @error = 字段名称 from 表。顺便说一下,在sql server 种输出方式也有两种,一种是print,另一种是select 语句。前者打印的是文本,后者打印的是表格。
关于事务,就的提到事务的隔离级别了,分别为:读未提交,读已提交,可重复读和序列化。sql server默认的隔离级别为读已提交。不同的隔离级别产生的问题有:丢失修改(写写冲突),胀读,不可重复读和幻读。读未提交隔离级别会产生所有问题,而序列化不会产生任何问题。另外,幻读和不可重复读的概念也是不一样的哦,一个是对象的集合,一个是对象的状态。