C# 如何将SqlBulkCopy与SMO和事务一起使用

C# 如何将SqlBulkCopy与SMO和事务一起使用,c#,sql,smo,C#,Sql,Smo,我试图使用SMO创建一个表,并进一步使用SqlBulkCopy对象向该表中注入一组数据。我可以在不使用以下事务的情况下执行此操作:- Server server = new Server(new ServerConnection(new SqlConnection(connectionString))); var database = server.Databases["MyDatabase"]; using (SqlConnection connection = server.Connect

我试图使用SMO创建一个表,并进一步使用SqlBulkCopy对象向该表中注入一组数据。我可以在不使用以下事务的情况下执行此操作:-

Server server = new Server(new ServerConnection(new SqlConnection(connectionString)));
var database = server.Databases["MyDatabase"];

using (SqlConnection connection = server.ConnectionContext.SqlConnectionObject)
{
    try
    {
        connection.Open();
        Table table = new Table(database, "MyNewTable");
        // --- Create the table and its columns --- //

        SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connection);
        sqlBulkCopy.DestinationTableName = "MyNewTable";
        sqlBulkCopy.WriteToServer(dataTable);
    }
    catch (Exception)
    {
        throw;
    }
}
基本上,我希望使用SqlTransaction对象执行上述操作,并在操作完成后提交(或者在操作失败时回滚)。 有人能帮忙吗?

2件事-

A-。这意味着副本本身被封装在事务中,并作为一个单元工作

B-

您应该能够在上面的代码中使用这些方法,但我怀疑如果在创建表时出现问题,您的
try/catch
将适当地处理这个问题