这两种交易处理方式有什么不同

时间:2014-08-13 04:54:33

标签: c# sql .net sql-server transactions

这两种交易处理方式有何不同

第一种方法

//
const string selectSatement = @"INSERT INTO Payment....";
using (SqlTransaction sqlTrans = sqlConnection.BeginTransaction())
using (SqlCommand sqlCommand = new SqlCommand(selectSatement, sqlConnection,sqlTrans))
//
sqlTrans.commit();

第二种方法

BEGIN TRAN T1; 
INSERT INTO Payment....;
COMMIT TRAN T1;

1 个答案:

答案 0 :(得分:1)

使用第一个选项,您可以异步使用数据库连接(多线程)。

如果您有并行线程在数据库中执行操作而您只是在那里转储BEGIN TRANSACTION,那么您可能会导致其他线程的查询不属于此事务的一部分。 ,如果你必须执行ROLLBACK,那就搞砸了。

通过使用SqlTransaction,您可以确保只包含应该属于交易一部分的查询。