Utilizar archivos de datos y archivos de formato
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)
El programa de copia masiva más simple hace lo siguiente:
Llama a bcp_init para especificar la copia masiva (establecer BCP_OUT) de una tabla o vista en un archivo de datos.
Llama a bcp_exec para ejecutar la operación de copia masiva.
El archivo de datos se crea en modo nativo; por tanto, los datos de todas las columnas de la tabla o la vista se almacenan en el archivo de datos con el mismo formato que en la base de datos. A continuación, se puede realizar una copia masiva del archivo en un servidor mediante estos mismos pasos y estableciendo DB_IN en lugar de DB_OUT. Esto solamente funciona si las tablas de destino y origen tienen exactamente la misma estructura. El archivo de datos resultante también se puede introducir en la utilidad bcp mediante el modificador /n (modo nativo).
Para copiar de forma masiva el conjunto de resultados de una instrucción Transact-SQL en lugar de directamente desde una tabla o vista:
Llame a bcp_init para especificar la copia masiva, pero especifique NULL para el nombre de la tabla.
Llame a bcp_control con eOption establecido en BCPHINTS e iValue establecido en un puntero a una cadena SQLTCHAR que contenga la instrucción Transact-SQL.
Llame a bcp_exec para ejecutar la operación de copia masiva.
La instrucción Transact-SQL puede ser cualquier instrucción que genere un conjunto de resultados. El archivo de datos se crea que contiene el primer conjunto de resultados de la instrucción Transact-SQL. La copia masiva omite cualquier conjunto de resultados después del primero si la instrucción Transact-SQL genera varios conjuntos de resultados.
Para crear un archivo de datos en el que los datos de columna se almacenan en un formato diferente al de la tabla, llame a bcp_columns para especificar cuántos columnas se cambiarán y, a continuación, llame a bcp_colfmt para cada columna cuyo formato desee cambiar. Esto se realiza después de llamar a bcp_init , pero antes de llamar a bcp_exec. bcp_colfmt especifica el formato en el que los datos de la columna se almacenan en el archivo de datos. Se puede usar al copiar de forma masiva dentro o fuera. También puede usar bcp_colfmt para establecer los terminadores de fila y columna. Por ejemplo, si los datos no contienen caracteres de tabulación, puede crear un archivo delimitado por tabulaciones mediante bcp_colfmt para establecer el carácter de tabulación como terminador para cada columna.
Al copiar de forma masiva y usar bcp_colfmt, puede crear fácilmente un archivo de formato que describa el archivo de datos que ha creado llamando a bcp_writefmt después de la última llamada a bcp_colfmt.
Al copiar en bloque desde un archivo de datos descrito por un archivo de formato, lea el archivo de formato llamando a bcp_readfmt después de bcp_init pero antes de bcp_exec.
La función bcp_control controla varias opciones al copiar de forma masiva en SQL Server desde un archivo de datos. bcp_control establece opciones, como el número máximo de errores antes de la terminación, la fila del archivo en el que se va a iniciar la copia masiva, la fila en la que se detendrá y el tamaño del lote.