Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe SqlBulkCopy

 
System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Permite um carregamento em massa eficiente de uma tabela do SQL Server com os dados de outra fonte.

Namespace:   System.Data.SqlClient
Assembly:  System.Data (em System.Data.dll)

System.Object
  System.Data.SqlClient.SqlBulkCopy

public sealed class SqlBulkCopy : IDisposable

NomeDescrição
System_CAPS_pubmethodSqlBulkCopy(SqlConnection)

Inicializa uma nova instância da classe SqlBulkCopy usando a instância de SqlConnection aberta especificada.

System_CAPS_pubmethodSqlBulkCopy(SqlConnection, SqlBulkCopyOptions, SqlTransaction)

Inicializa uma nova instância da classe SqlBulkCopy usando a instância aberta existente fornecida do SqlConnection. A instância SqlBulkCopy se comporta de acordo com as opções fornecidas no parâmetro copyOptions. Se um SqlTransaction não nulo for fornecido, as operações de cópia serão executadas nessa transação.

System_CAPS_pubmethodSqlBulkCopy(String)

Inicializa e abre uma nova instância de SqlConnection com base no connectionString fornecido. O construtor usa o SqlConnection para inicializar uma nova instância da classe SqlBulkCopy.

System_CAPS_pubmethodSqlBulkCopy(String, SqlBulkCopyOptions)

Inicializa e abre uma nova instância de SqlConnection com base no connectionString fornecido. O construtor usa SqlConnection para inicializar uma nova instância da classe SqlBulkCopy. A instância SqlConnection se comporta de acordo com as opções fornecidas no parâmetro copyOptions.

NomeDescrição
System_CAPS_pubpropertyBatchSize

Número de linhas em cada lote. No final de cada lote, as linhas no lote são enviadas ao servidor.

System_CAPS_pubpropertyBulkCopyTimeout

Número de segundos para que a operação seja concluída antes de atingir o tempo limite.

System_CAPS_pubpropertyColumnMappings

Retorna uma coleção de itens SqlBulkCopyColumnMapping. Mapeamentos de coluna definem as relações entre colunas na fonte de dados e colunas no destino.

System_CAPS_pubpropertyDestinationTableName

Nome da tabela de destino no servidor.

System_CAPS_pubpropertyEnableStreaming

Habilita ou desabilita um objeto SqlBulkCopy a transmitir dados de um objeto IDataReader

System_CAPS_pubpropertyNotifyAfter

Define o número de linhas a serem processadas antes de gerar um evento de notificação.

NomeDescrição
System_CAPS_pubmethodClose()

Fecha a instância SqlBulkCopy.

System_CAPS_pubmethodEquals(Object)

Determina se o objeto especificado é igual ao objeto atual.(Herdado de Object.)

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodToString()

Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.)

System_CAPS_pubmethodWriteToServer(DataRow[])

Copia todas as linhas da matriz DataRow fornecida para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServer(DataTable)

Copia todas as linhas no DataTable fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServer(DataTable, DataRowState)

Copia apenas linhas que correspondem ao estado de linha fornecido no DataTable fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServer(DbDataReader)

Copia todas as linhas da matriz DbDataReader fornecida para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServer(IDataReader)

Copia todas as linhas no IDataReader fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServerAsync(DataRow[])

A versão assíncrona do WriteToServer, que copia todas as linhas da matriz DataRow fornecida para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServerAsync(DataRow[], CancellationToken)

A versão assíncrona do WriteToServer, que copia todas as linhas da matriz DataRow fornecida para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

System_CAPS_pubmethodWriteToServerAsync(DataTable)

A versão assíncrona de WriteToServer, que copia todas as linhas no DataTable fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServerAsync(DataTable, CancellationToken)

A versão assíncrona de WriteToServer, que copia todas as linhas no DataTable fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

System_CAPS_pubmethodWriteToServerAsync(DataTable, DataRowState)

A versão assíncrona do WriteToServer, que copia somente as linhas que correspondem ao estado de linha fornecido fornecido DataTable em uma tabela de destino especificada pelo DestinationTableName propriedade o SqlBulkCopy objeto.

System_CAPS_pubmethodWriteToServerAsync(DataTable, DataRowState, CancellationToken)

A versão assíncrona do WriteToServer, que copia somente as linhas que correspondem ao estado de linha fornecido fornecido DataTable em uma tabela de destino especificada pelo DestinationTableName propriedade o SqlBulkCopy objeto.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

System_CAPS_pubmethodWriteToServerAsync(DbDataReader)

A versão assíncrona do WriteToServer, que copia todas as linhas da matriz DbDataReader fornecida para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServerAsync(DbDataReader, CancellationToken)

A versão assíncrona do WriteToServer, que copia todas as linhas da matriz DbDataReader fornecida para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServerAsync(IDataReader)

A versão assíncrona de WriteToServer, que copia todas as linhas no IDataReader fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

System_CAPS_pubmethodWriteToServerAsync(IDataReader, CancellationToken)

A versão assíncrona de WriteToServer, que copia todas as linhas no IDataReader fornecido para uma tabela de destino especificada pela propriedade DestinationTableName do objeto SqlBulkCopy.

O token de cancelamento pode ser usado para solicitar que a operação seja abandonada antes de expirar o tempo limite do comando. As exceções serão relatadas por meio do objeto de tarefa.

NomeDescrição
System_CAPS_pubeventSqlRowsCopied

Ocorre sempre que o número de linhas especificado pela propriedade NotifyAfter foram processadas.

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethodIDisposable.Dispose()

Libera todos os recursos usados pela instância atual da classe SqlBulkCopy.

Microsoft SQL Server inclui um utilitário de prompt de comando popular chamado bcp para mover dados de uma tabela para outra, seja em um único servidor ou entre servidores. O SqlBulkCopy classe permite que você escreva soluções de código gerenciado que fornecem funcionalidade semelhante. Existem outras maneiras para carregar dados em uma tabela do SQL Server (instruções de inserção, por exemplo), mas SqlBulkCopy oferece uma vantagem de desempenho significativa sobre eles.

O SqlBulkCopy classe pode ser usada para gravar dados somente em tabelas do SQL Server. No entanto, a fonte de dados não é limitada ao SQL Server; qualquer fonte de dados pode ser usado, desde que os dados podem ser carregados para um DataTable instância ou de leitura com um IDataReader instância.

SqlBulkCopyfalhará ao carregamento em massa um DataTable coluna do tipo SqlDateTime em um SQL Server a coluna cujo tipo é um dos tipos de data/hora adicionado no SQL Server 2008.

O aplicativo de console a seguir demonstra como carregar dados usando o SqlBulkCopy classe. Neste exemplo, um SqlDataReader é usado para copiar dados do Production. Product tabela o SQL ServerAdventureWorks banco de dados para uma tabela semelhante no mesmo banco de dados.

System_CAPS_importantImportante

Este exemplo não será executado a menos que você crie as tabelas de trabalho conforme descrito em Configuração de exemplo de cópia em massa. Esse código é fornecido para demonstrar a sintaxe para usar SqlBulkCopy somente. Se as tabelas de origem e destino estiverem na mesma instância do SQL Server, é mais fácil e rápido para usar um Transact-SQL INSERT … SELECT instrução para copiar os dados.

using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string connectionString = GetConnectionString();
        // Open a sourceConnection to the AdventureWorks database.
        using (SqlConnection sourceConnection =
                   new SqlConnection(connectionString))
        {
            sourceConnection.Open();

            // Perform an initial count on the destination table.
            SqlCommand commandRowCount = new SqlCommand(
                "SELECT COUNT(*) FROM " +
                "dbo.BulkCopyDemoMatchingColumns;",
                sourceConnection);
            long countStart = System.Convert.ToInt32(
                commandRowCount.ExecuteScalar());
            Console.WriteLine("Starting row count = {0}", countStart);

            // Get data from the source table as a SqlDataReader.
            SqlCommand commandSourceData = new SqlCommand(
                "SELECT ProductID, Name, " +
                "ProductNumber " +
                "FROM Production.Product;", sourceConnection);
            SqlDataReader reader =
                commandSourceData.ExecuteReader();

            // Open the destination connection. In the real world you would 
            // not use SqlBulkCopy to move data from one table to the other 
            // in the same database. This is for demonstration purposes only.
            using (SqlConnection destinationConnection =
                       new SqlConnection(connectionString))
            {
                destinationConnection.Open();

                // Set up the bulk copy object. 
                // Note that the column positions in the source
                // data reader match the column positions in 
                // the destination table so there is no need to
                // map columns.
                using (SqlBulkCopy bulkCopy =
                           new SqlBulkCopy(destinationConnection))
                {
                    bulkCopy.DestinationTableName =
                        "dbo.BulkCopyDemoMatchingColumns";

                    try
                    {
                        // Write from the source to the destination.
                        bulkCopy.WriteToServer(reader);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        // Close the SqlDataReader. The SqlBulkCopy
                        // object is automatically closed at the end
                        // of the using block.
                        reader.Close();
                    }
                }

                // Perform a final count on the destination 
                // table to see how many rows were added.
                long countEnd = System.Convert.ToInt32(
                    commandRowCount.ExecuteScalar());
                Console.WriteLine("Ending row count = {0}", countEnd);
                Console.WriteLine("{0} rows were added.", countEnd - countStart);
                Console.WriteLine("Press Enter to finish.");
                Console.ReadLine();
            }
        }
    }

    private static string GetConnectionString()
        // To avoid storing the sourceConnection string in your code, 
        // you can retrieve it from a configuration file. 
    {
        return "Data Source=(local); " +
            " Integrated Security=true;" +
            "Initial Catalog=AdventureWorks;";
    }
}

.NET Framework
Disponível desde 2.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: