Sqlserver 和.net中的事务

转载 2012年03月25日 15:37:57

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

2,.Net中使用事务处理
SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();

SqlTransaction myTrans = myConnection.BeginTransaction(); //使用New新生成一个事务
SqlCommand myCommand = new SqlCommand();
myCommand.Transaction = myTrans;

try
{
myCommand.CommandText = "Update Address set location='23 rain street' where userid='0001'";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Record is udated.");
}
catch(Exception e)
{
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Sorry, Record can not be updated.");
}
finally
{
myConnection.Close();
}


SqlServer 在事务中获得自增ID

USE tempdb goCREATE TABLE table1 ( id INT, employee VARCHAR(32) ) goINSERT INTO table1 VALUE...
  • lee576
  • lee576
  • 2015年03月25日 17:55
  • 1912

dotnet下ADO 操作 SQLServer 事务处理

     private static readonly string strCon = "server=.;database=test;uid=sa;pwd=123";    SqlConnecti...
  • Dream6000
  • Dream6000
  • 2006年11月25日 22:40
  • 851

SQL Server事务操作(C#)

事务是指用户定义的一个数据库操作序列,这些操作要么全做要么全不做,它是一个不可分割的工作单位。一个事务可以是一条SQL语句,一组SQL语句,或整个程序。 例子程序: public bool t...
  • softimite_zifeng
  • softimite_zifeng
  • 2016年11月09日 11:03
  • 1364

SQL SERVER 事务执行情况跟踪分析

---查看现在所有的事务 select '正在运行事务的会话的 ID'=session_id, --session_id与transaction_id的对应关...
  • zhaowenzhong
  • zhaowenzhong
  • 2013年11月15日 17:15
  • 3751

浅谈sqlserver中的事务和锁

昨日“拜读”《sqlserver2005高级程序设计》和《SQL Server 2008编程入门经典(第3版)》这两本翻译后的中文版书籍。竟然发现目录结构大致一样,其讲解的内容几乎差不多。有抄袭的...
  • dinglang_2009
  • dinglang_2009
  • 2012年01月16日 10:09
  • 4854

sql server 存储过程,触发器,事务

尽管sql server 提供了使用方便的图形化用户界面,但是各种功能的实现基础是 transact-sql 语言. transact-sql语言直接来源于sql语言,因此也具有sql语言的几个...
  • yzr1183739890
  • yzr1183739890
  • 2015年12月13日 17:10
  • 2139

SQLServer 存储过程中使用事务

存储过程SQL: create proc ***** @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId in...
  • xie_xiansheng
  • xie_xiansheng
  • 2017年02月27日 15:29
  • 1669

SQLSERVER INSERT 和 UPDATE 事务期间禁用外键约束

在SQLSERVER 中事务插入 更新数据是经常由于外键约束而无法提交成功,此时可以通过禁用外键越是来避免此问题的出现。 操作如下: 在数据库关系图中,右击包含外键的表,选择"关系"选...
  • shao5155285
  • shao5155285
  • 2012年05月30日 14:44
  • 1048

SQLServer 存储过程 带事务处理实例(四)

CREATE procedure [dbo].******* ( @smallOrderNo varchar(50), @phoneModel varchar(50), @beginBoxNo ...
  • xie_xiansheng
  • xie_xiansheng
  • 2017年03月07日 14:01
  • 2148

SqlServer事务语法及使用方法

事务是关于原子性的。原子性的概念是指可以把一些事情当做一个不可分割的单元来看待。从数据库的角度看,它是指应全部执行或全部不执行的一条或多条语句的最小组合。...
  • xiaouncle
  • xiaouncle
  • 2016年10月22日 16:22
  • 17013
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sqlserver 和.net中的事务
举报原因:
原因补充:

(最多只允许输入30个字)