1、.Net中创建事务的结构
SqlConnection sqlConnection = new SqlConnection();
...初始化连接
// 开启事务
SqlTransaction sqlTransaction = sqlConnection.BeginTransaction();
// 将事务应用于Command
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.Connection = sqlConnection;
sqlCommand.Transaction = sqlTransaction;
try
{
// 利用sqlcommand进行数据操作
...
// 成功提交
sqlTransaction.Commit();
}
catch(Exception ex)
{
// 出错回滚
sqlTransaction.Rollback();
}
2、.Net中简单例子
protected void 事务处理()
{
SqlConnection cnn = new SqlConnection(conStr);
SqlCommand com = new SqlCommand();
com.Connection = cnn;
cnn.Open();
SqlTransaction trans = cnn.BeginTransaction();//开启事务
com.Transaction = trans;//将事务应用于Command 对象之中
try
{
com.CommandText ="insert into test values('1','11')";
com.CommandText +="insert into test values('1','22')";
com.ExecuteNonQuery();
trans.Commit();//提交事务
}
catch
{
trans.Rollback();//事务回滚
}
finally
{
cnn.Close();
trans.Dispose();
cnn.Dispose();
}
}
3、SQl server中的事务例子
begin tran --开始执行事务
insert into shop_Rebate values('a',0,0,'b')
insert into shop_Rebate values('a',0,0,'c'4)
if @@error<>0 --判断如果两条语句有任何一条出现错误
begin
rollback tran --开始执行事务的回滚,恢复的转账开始之前状态
end
else
begin
commit tran --执行这个事务的操作
end
4、注意
1。事务必须在连接打开后BeginTransaction();
2.事务添加到SqlCommand(sqlCommand.Transaction = sqlTransaction; )
3、其他数据库对应做相应调整
4、可以用微软提供的一个dll,很方便.
---------------------
declare @i int,@kvarchar(50)
set @i=1
while @i<=5
begin
begin tran
save tran pigOneIn --加入保存点
set @k=@i
if(@i=3)
set @k='99999999999999999999'
insert into lives(Eat,Play,Numb)values('iii','足球',@i)
insert into lives(Eat,Play,Numb)values('kkk','足球',@k)
if(@@error=0)
commit tran
else
begin
rollback tran pigOneIn
commit tran
end
set @i=@i+1
end
下文写的还比较详细
http://www.cnblogs.com/knowledgesea/p/3714417.html