本文介绍了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 属性有区别吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 08:43