Operações de cópia em massa no SQL Server

O Microsoft SQL Server inclui um utilitário de linha de comando popular chamado bcp para copiar rapidamente grandes arquivos em massa em tabelas ou exibições em bancos de dados do SQL Server. A classe SqlBulkCopy permite escrever soluções de código gerenciado que fornecem funcionalidade semelhante. Há outras maneiras de carregar dados em uma tabela do SQL Server (instruções INSERT, por exemplo), mas SqlBulkCopy oferece uma vantagem de desempenho significativa sobre eles.

A classe SqlBulkCopy pode ser usada para gravar dados somente em tabelas do SQL Server. Mas a fonte de dados não está limitada ao SQL Server; qualquer fonte de dados pode ser usada, desde que os dados possam ser carregados em uma instância DataTable ou lidos com uma instância IDataReader.

Usando a classe SqlBulkCopy, você pode executar:

  • Uma única operação de cópia em massa

  • Várias operações de cópia em massa

  • Uma operação de cópia em massa dentro de uma transação

Observação

Ao usar o .NET Framework versão 1.1 ou anterior (que não dá suporte à classe SqlBulkCopy), você pode executar a instrução BULK INSERT do Transact-SQL no SQL Server usando o objeto SqlCommand.

Nesta seção

Configuração de exemplo de cópia em massa
Descreve as tabelas usadas nos exemplos de cópia em massa e fornece scripts SQL para criar as tabelas no banco de dados AdventureWorks.

Operações únicas de cópia em massa
Descreve como fazer uma cópia em massa de dados em uma instância do SQL Server usando a classe SqlBulkCopy e como executar a operação de cópia em massa usando instruções Transact-SQL e a classe SqlCommand.

Várias operações de cópia em massa
Descreve como realizar várias operações de cópia em massa de dados em uma instância do SQL Server usando a classe SqlBulkCopy.

Transações e operações de cópia em massa
Descreve como executar uma operação de cópia em massa em uma transação, incluindo como fazer commit ou reverter a transação.

Confira também