SQL server 事务与锁

来源:互联网 发布:车载蓝牙播放器 知乎 编辑:程序博客网 时间:2024/05/22 01:39


-- 基本框架use STUDENT go begin tran commit tran --rollback tran  // 提交或者回滚-------------------------带try块的-- 开启事务 use STUDENTgo begin tran--set tran isolation level read uncommitted   -- 设置事务隔离级别--set tran isolation level read committed --set tran isolation level  repeatable read --set tran isolation level  serializable begin try insert into dbo.Student values (1101,'王燕','女',20,'北京','工程系',NULL)insert into dbo.Student values (1202,'李波','男',21,'上海','计算机系',NULL)insert into dbo.Student values (1203,'陈建','男',19,'长沙','计算机系',NULL)insert into dbo.Student values (1303,'张斌','男',22,'上海','经管系',NULL)insert into dbo.Student values (1305,'张斌','女',20,'武汉','经管系',NULL)end try begin catchselect Error_number()as ErrorNumber, --错误代码           Error_severity() as ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到           Error_state()as ErrorState , --错误状态码           Error_Procedure()as ErrorProcedure , --出现错误的存储过程或触发器的名称。           Error_line()as ErrorLine, --发生错误的行号           Error_message()as ErrorMessage      --错误的具体信息    if( @@trancount > 0 ) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务  -- 具体参考 https://msdn.microsoft.com/zh-cn/library/ms187967.aspx#rollback tran  ---由于出错,这里回滚到开始,第一条语句也没有插入成功。end catchselect *from dbo.Student  --with (nolock) --读的时候不请求加S(共享锁)exec sp_lock -- 查询锁的使用情况if(@@trancount>0)commit tran  --如果成功--------------------------------到此结束事务 delete dbo.Student


参考

http://www.cnblogs.com/knowledgesea/p/3714417.html

https://msdn.microsoft.com/zh-cn/library/ms187967.aspx#

http://blog.csdn.net/xiaouncle/article/details/52891563

0 0
原创粉丝点击