本文介绍了SMO ServerConnection 事务方法与使用 SqlConnectionObject 属性有区别吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 SMO 在 SQL Server 上创建数据库和表.我想在交易中这样做.这两种方法是否有效且等效:
I am using SMO to create databases and tables on a SQL Server. I want to do so in a transaction. Are both of these methods of doing so valid and equivalent:
第一种方法:
Server server;
//...
server.ConnectionContext.BeginTransaction();
//...
server.ConnectionContext.CommitTransaction();
第二种方法:
Server server;
// ...
SqlConnection conn = server.ConnectionContext.SqlConnectionObject;
SqlTransaction trans = conn.BeginTransaction();
// ...
trans.Commit();
推荐答案
两者是等价的.使用 SqlTransaction 对象允许您将事务放置在 using
范围内:
The two are equivalent. Using a SqlTransaction object allows you to place the transaction in an using
scope:
using(SqlTransaction trn = conn.BeginTransaction ())
{
...
trn.Commit ();
}
这是存在异常时更好的模式.
This is a better pattern in presence of exceptions.
这篇关于SMO ServerConnection 事务方法与使用 SqlConnectionObject 属性有区别吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!