Sqlserver 存储过程中结合事务的代码 

--方式一

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[USP_ProcedureWithTransaction_Demo] 
GO 
-- ============================================= 
-- Author: <ChengXiaoming> 
-- Create date: <2010-06-11> 
-- Description: <Demo:存储过程中使用事务> 
-- ============================================= 
Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo] 
As 
Begin 
SET XACT_ABORT ON 
Begin Transaction 
Insert Into Lock(LockTypeID) Values('A')--此语句将出错,LockTypeID为Int类型 
Update Lock Set LockTypeID = 2 Where LockID = 32 
Commit Transaction 
SET XACT_ABORT OFF 
End 
GO 
--方式二 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[USP_ProcedureWithTransaction_Demo] 
GO 
-- ============================================= 
-- Author: <ChengXiaoming> 
-- Create date: <2010-06-11> 
-- Description: <Demo:存储过程中使用事务> 
-- ============================================= 
Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo] 
As 
Begin 
Begin Transaction 
Insert Into Lock(LockTypeID) Values('A')--此语句将出错,LockTypeID为Int类型 
Update Lock Set LockTypeID = 1 Where LockID = 32 
Commit Transaction 
If(@@ERROR <> 0) 
Rollback Transaction 
End 
GO 
--方式三 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
drop procedure [dbo].[USP_ProcedureWithTransaction_Demo] 
GO 
-- ============================================= 
-- Author: <ChengXiaoming> 
-- Create date: <2010-06-11> 
-- Description: <Demo:存储过程中使用事务> 
-- ============================================= 
Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo] 
As 
Begin 
Begin Try 
Begin Transaction 
Update Lock Set LockTypeID = 1 Where LockID = 32--此语句将出错,LockTypeID为Int类型 
Insert Into Lock(LockTypeID) Values('A') 
Commit Transaction 
End Try 
Begin Catch 
Rollback Transaction 
End Catch 
End 
GO 
Exec [USP_ProcedureWithTransaction_Demo] 

最新文章

  1. Git:Git初体验——Git安装配置
  2. java并发控制:lock
  3. python获取字典的key列表
  4. Linux命令(23)grep命令的使用
  5. struts2拦截器
  6. properties 配置文件中值换行的问题
  7. PHP的Tag标签
  8. 大熊君说说JS与设计模式之------命令模式Command
  9. 多窗体之间方法调用 z
  10. Python爬虫之豆瓣-新书速递-图书解析
  11. java 内部类的使用
  12. InstallShield : 如何查找编译后的 Merge Module存放路径
  13. [core java学习笔记][第十一章异常断言日志调试]
  14. 分布式发布订阅消息系统Kafka
  15. PAT 团体程序设计天梯赛-练习集 L1-023. 输出GPLT
  16. 解决微信浏览器中无法一键拨号问题tel
  17. nodeJS之crypto模块md5和Hmac加密
  18. 正试图在os加载程序锁内执行托管代码。不要尝试在DllMain或映像初始化函数内运行托管代码 问题解决方法
  19. MIME 内容类型
  20. 【BZOJ3672】【UOJ#6】【NOI2014】随机数生成器

热门文章

  1. Dom lesson1
  2. windows和linux下mysql的重启命令
  3. iOS viewDidAppear 和 viewWillAppear
  4. Java for LeetCode 146 LRU Cache 【HARD】
  5. cc.game
  6. Java虚拟机支持的最大内存限制
  7. 禁用SettingSyncHost.exe
  8. Tomcat 解决The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
  9. javaweb实现验证码功能
  10. errno 错误码