这两种交易处理方式有何不同
第一种方法
//
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;
答案 0 :(得分:1)
使用第一个选项,您可以异步使用数据库连接(多线程)。
如果您有并行线程在数据库中执行操作而您只是在那里转储BEGIN TRANSACTION
,那么您可能会导致其他线程的查询不属于此事务的一部分。 ,如果你必须执行ROLLBACK
,那就搞砸了。
通过使用SqlTransaction
,您可以确保只包含应该属于交易一部分的查询。