2010-06-16 31 views
3

我正在使用SMO在SQL Server上創建數據庫和表。我想在交易中這樣做。都幹得那麼有效,相當於這些方法:與使用SqlConnectionObject屬性相比,SMO ServerConnection事務方法存在差異嗎?

第一種方法:

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

方法二:

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

回答

3

兩個是等價的。使用的SqlTransaction對象允許您將交易在using範圍:

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

這是例外的存在更好的模式。