3

我正在使用 SMO 在 SQL Server 上创建数据库和表。我想在交易中这样做。这两种方法是否有效且等效:

第一种方法:

Server server;
//...
server.ConnectionContext.BeginTransaction();
//...
server.ConnectionContext.CommitTransaction();

第二种方法:

Server server;
// ...
SqlConnection conn = server.ConnectionContext.SqlConnectionObject;
SqlTransaction trans = conn.BeginTransaction();
// ...
trans.Commit();
4

1 回答 1

3

两者是等价的。使用 SqlTransaction 对象允许您将事务放置在using范围内:

using(SqlTransaction  trn = conn.BeginTransaction ())
{
 ...
 trn.Commit ();
}

这是存在异常时更好的模式。

于 2010-06-16T22:20:18.707 回答