SqlBulkCopy.BatchSize Propriedade

Definição

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

public int BatchSize { get; set; }

Valor da propriedade

O valor inteiro da propriedade BatchSize, ou zero, se nenhum valor foi definido.

Exemplos

O aplicativo de console a seguir demonstra como carregar dados em massa em lotes de 50 linhas. Para obter um exemplo que ilustra como BatchSize funciona com uma transação, consulte Operações de transação e cópia em massa.

Importante

Essa amostra não será executada, a menos que você tenha criado 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 somente SqlBulkCopy. Se as tabelas de origem e destino estiverem na mesma instância SQL Server, será mais fácil e rápido usar uma instrução Transact-SQL INSERT … SELECT para copiar os dados.

Comentários

Um lote estará concluído quando as linhas BatchSize forem processadas ou não houver mais linhas para enviar para a fonte de dados de destino.

Zero (o padrão) indica que cada WriteToServer operação é um único lote.

Se a SqlBulkCopy instância tiver sido declarada sem a opção UseInternalTransaction em vigor, as linhas serão enviadas para as linhas do servidor BatchSize por vez, mas nenhuma ação relacionada à transação será executada. Se UseInternalTransaction estiver em vigor, cada lote de linhas será inserido como uma transação separada.

A BatchSize propriedade pode ser definida a qualquer momento. Se uma cópia em massa já estiver em andamento, o lote atual será dimensionado de acordo com o tamanho do lote anterior. Os lotes subsequentes usam o novo tamanho. Se o BatchSize for inicialmente zero e alterado enquanto uma WriteToServer operação já estiver em andamento, essa operação carregará os dados como um único lote. Todas as operações subsequentes WriteToServer na mesma SqlBulkCopy instância usam o novo BatchSize.

Aplica-se a