这两种交易处理方式有何区别
第一种方法
//
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;
最佳答案
使用第一个选项,您可以异步使用数据库连接(多线程)。
如果您有并行线程在数据库中执行操作,而只是在其中转储BEGIN TRANSACTION
,则可能会导致其他线程的查询(也包括在该事务中)也被包含进来,并在某些情况下搞砸了执行ROLLBACK
。
使用SqlTransaction
可以确保仅将应该包含在事务中的查询包括在其中。
关于c# - 这两种交易处理方式有何区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25278333/