SqlBulkCopy.BatchSize Propriedade
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Número de linhas em cada lote. No final de cada lote, as linhas no lote são enviados para o servidor.
public:
property int BatchSize { int get(); void set(int value); };
public int BatchSize { get; set; }
member this.BatchSize : int with get, set
Public Property BatchSize As Integer
O valor inteiro da propriedade BatchSize, ou zero, se nenhum valor foi definido.
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.
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.