Usando arquivos de dados e de formato
O programa de cópia em massa mais simples executa estas tarefas:
Chama bcp_init para especificar a cópia em massa de saída (defina BCP_OUT) de uma tabela ou exibição para um arquivo de dados.
Chama bcp_exec para executar a operação de cópia em massa.
O arquivo de dados é criado em modo nativo; portanto, os dados de todas as colunas na tabela ou exibição são armazenados no arquivo de dados com o mesmo formato do banco de dados. É possível executar cópia em massa de entrada do arquivo em um servidor usando essas mesmas etapas e definindo DB_IN em vez de DB_OUT. Isso só funcionará se ambas as tabelas (origem e destino) tiverem exatamente a mesma estrutura. O arquivo de dados resultante também poderá ser inserido no utilitário bcp usando a opção /n (modo nativo).
Para executar a cópia em massa de saída do conjunto de resultados de uma instrução Transact-SQL, em vez de diretamente de uma tabela ou exibição:
Chame bcp_init para especificar a cópia em massa de saída, mas especifique NULL para o nome da tabela.
Chame bcp_control com eOption definido como BCPHINTS e iValue definido como ponteiro para uma cadeia de caracteres SQLTCHAR que contém a instrução Transact-SQL.
Chame bcp_exec para executar a operação de cópia em massa.
A instrução Transact-SQL pode ser qualquer instrução que gera um conjunto de resultados. Será criado o arquivo de dados que contém o primeiro conjunto de resultados da instrução Transact-SQL. A cópia em massa ignora qualquer conjunto de resultados após o primeiro se a instrução Transact-SQL gera vários conjuntos de resultados (por exemplo, se contiver COMPUTE ou COMPUTE BY).
Para criar um arquivo de dados em que os dados de coluna estejam armazenados em um formato diferente daquele da tabela, chame bcp_columns para especificar quantas colunas serão alteradas e chame bcp_colfmt para cada coluna cujo formato deseje alterar. Esse procedimento é executado depois de chamar bcp_init, mas antes de chamar bcp_exec. bcp_colfmt especifica o formato em que os dados da coluna são armazenados no arquivo de dados. Ele pode ser usado na cópia em massa de entrada ou de saída. Você também pode usar bcp_colfmt para definir os terminadores de linha e de coluna. Por exemplo, se os dados não contiverem caracteres de tabulação, você poderá criar um arquivo delimitado por tabulação usando bcp_colfmt para definir o caractere de tabulação como terminador de cada coluna.
Ao executar a cópia em massa de saída e usar bcp_colfmt, você pode criar facilmente um arquivo de formato que descreve o arquivo de dados criado chamando bcp_writefmt após a última chamada para bcp_colfmt.
Ao executar a cópia em massa de entrada de um arquivo de dados descrito por um arquivo de formato, leia o arquivo de formato chamando bcp_readfmt depois de bcp_init porém antes de bcp_exec.
A função bcp_control controla várias opções durante a cópia em massa de entrada no SQL Server de um arquivo de dados. bcp_control define as opções, como o número máximo de erros antes do término, a linha do arquivo em que será iniciada a cópia em massa, a linha em que ocorrerá a interrupção e o tamanho do lote.