-
data_file
-
Es la ruta completa del archivo de datos.
Cuando se importan datos de forma masiva a SQL Server, el archivo de datos contiene los datos que se van a copiar en la tabla o vista especificada. Cuando se realiza una exportación de datos de forma masiva desde SQL Server, el archivo de datos contiene los datos copiados desde la tabla o desde la vista. La ruta de acceso puede contener de 1 a 255 caracteres. El archivo de datos puede contener 263 - 1 filas, como máximo.
-
database_name
-
Es el nombre de la base de datos en la que reside la tabla o vista especificada.
Si no se especifica, es la base de datos predeterminada para el usuario.
También puede especificar explícitamente el nombre de la base de datos con d-.
-
in
data_file | outdata_file | queryoutdata_file | format nul
-
Especifica la dirección de la copia masiva, de la siguiente manera:
-
in copia desde un archivo en la vista o la tabla de la base de datos.
-
out copia desde la tabla o la vista de la base de datos en un archivo.
Si se especifica un archivo ya existente, este se sobrescribe. Al extraer datos, tenga en cuenta que la utilidad bcp representa una cadena vacía como nula y una cadena nula como vacía.
-
queryout copia desde una consulta y debe especificarse solo cuando se copian datos de forma masiva desde una consulta.
-
format crea un archivo de formato basado en la opción especificada (-n, -c, -w o -N) y los delimitadores de la vista o de la tabla.
Cuando se copian datos de forma masiva, el comando bcp puede hacer referencia a un archivo de formato, lo que evita tener especificar de nuevo la información de formato interactivamente. La opción format necesita la opción -f; la creación de un archivo de formato XML también requiere la opción -x. Para obtener más información, vea Crear un archivo de formato (SQL Server). Debe especificar nul como valor (format nul).
-
owner
-
Es el nombre del propietario de la tabla o vista.
owner es opcional si el usuario que realiza la operación es propietario de la tabla o vista especificada. Si no se especifica owner y el usuario que realiza la acción no es el propietario de la tabla o la vista especificada, SQL Server devuelve un mensaje de error y se cancela la operación.
-
"
query
"
-
Es una consulta Transact-SQL que devuelve un conjunto de resultados.
Si la consulta devuelve múltiples conjuntos de resultados, solo se copiará el primero en el archivo de datos; los conjuntos de resultados siguientes se omitirán. Use comillas dobles para la consulta y comillas simples en los elementos que incruste en la consulta.
queryout también se debe especificar cuando se copian datos desde una consulta.
La consulta puede hacer referencia a un procedimiento almacenado siempre que todas las tablas a las que se haga referencia dentro del procedimiento almacenado existan antes de ejecutar la instrucción bcp.
Por ejemplo, si el procedimiento almacenado genera una tabla temporal, se produce un error en la instrucción bcp porque la tabla temporal solamente está disponible en tiempo de ejecución y no cuando se ejecuta la instrucción. En este caso, considere la posibilidad de insertar los resultados del procedimiento almacenado en una tabla y, a continuación, usar bcp para copiar los datos de la tabla en un archivo de datos.
-
table_name
-
Es el nombre de la tabla de destino cuando se importan datos a SQL Server (in) y la tabla de origen cuando se exportan datos de SQL Server (out).
-
view_name
-
Es el nombre de la vista de destino cuando se copian datos en SQL Server (in) y la vista de origen cuando se copian datos de SQL Server (out).
Solamente pueden usarse como vistas de destino aquellas vistas en las que todas las columnas hacen referencia a la misma tabla. Para obtener más información sobre las restricciones para copiar datos en vistas, vea INSERT (Transact-SQL).
-
-a
packet_size
-
Especifica el número de bytes por paquete de red enviados y recibidos por el servidor.
Es posible establecer una opción de configuración de servidor mediante SQL Server Management Studio (o el procedimiento almacenado del sistema sp_configure). No obstante, la opción de configuración de servidor puede sustituirse individualmente mediante esta opción.
packet_size puede oscilar entre 4096 y 65535; el valor predeterminado es 4096.
Un tamaño mayor de los paquetes puede mejorar el rendimiento de las operaciones de copia masiva.
Si se pide un tamaño de paquete mayor, pero no puede concederse, se usa el valor predeterminado. Las estadísticas de rendimiento generadas por la utilidad bcp muestran el tamaño del paquete utilizado.
-
-b
batch_size
-
Especifica el número de filas por lote de datos importados.
Cada lote se importa y registra como una transacción aparte que importa el lote entero antes de confirmarse. De forma predeterminada, todas las filas del archivo de datos se importan en un solo lote. Para distribuir las filas en varios lotes, especifique un valor de batch_size inferior al número de filas del archivo de datos. Si se produce un error en la transacción de un lote, solamente se revierten las inserciones del lote actual. Los lotes importados por transacciones confirmadas no se ven afectados por los errores posteriores.
No use esta opción junto con la opción -h"ROWS_PER_BATCH =bb".
-
-c
-
Realiza la operación con un tipo de datos de carácter.
Esta opción no realiza una petición para cada campo; usa char como tipo de almacenamiento, sin prefijos y con \t (carácter de tabulación) como separador de campos y \r\n (carácter de nueva línea) como terminador de filas.
-c
no es compatible con -w.
Para obtener más información, vea Usar el formato de caracteres para importar o exportar datos (SQL Server).
-
-C { ACP | OEM | RAW | code_page }
-
Especifica la página de códigos de los datos incluidos en el archivo de datos.
code_page solo es pertinente si los datos contienen columnas de tipo char, varchar o text con valores de caracteres mayores que 127 o menores que 32.
Nota
|
|
Se recomienda especificar un nombre de intercalación para cada columna de un archivo de formato.
|
|
Valor de página de códigos
|
Descripción
|
|
ACP
|
ANSI/Microsoft Windows (ISO 1252).
|
|
OEM
|
Página de códigos predeterminada, utilizada por el cliente.
Esta es la página de códigos que se usa de forma predeterminada si no se especifica -C.
|
|
RAW
|
No se realiza ninguna conversión entre páginas de códigos.
Se trata de la opción más rápida porque no se producen conversiones.
|
|
code_page
|
Número específico de una página de códigos, por ejemplo, 850.
Importante
|
|
SQL Server no admite la página de códigos 65001 (codificación UTF-8).
|
|
-
-d
database_name
-
Especifica la base de datos a la que conectarse.
De forma predeterminada, bcp.exe se conecta a la base de datos predeterminada del usuario. Si se especifica -ddatabase_name y un nombre de tres partes (database_name.schema.table se pasa como primer parámetro a bcp.exe), se producirá un error porque no se puede especificar dos veces el nombre de la base de datos. Si database_name comienza con un guión (-) o una barra diagonal (/), no agregue un espacio entre -d y el nombre de base de datos.
-
-e
err_file
-
Especifica la ruta completa de un archivo de error que se usa para almacenar las filas que la utilidad bcp no puede transferir del archivo a la base de datos.
Los mensajes de error del comando bcp van a la estación de trabajo del usuario. Si no se usa esta opción, no se creará el archivo de errores.
Si err_file comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -e y el valor err_file.
-
-E
-
Especifica que se usará el valor o valores de identidad del archivo de datos importado para la columna de identidad.
Si no se especifica -E, se omiten los valores de identidad de esta columna en el archivo de datos que se importa y SQL Server asigna automáticamente valores únicos basados en los valores de inicialización y de incremento especificados durante la creación de la tabla.
Si el archivo de datos no contiene valores para la columna de identidad de la tabla o la vista, use un archivo de formato para especificar que se debe omitir la columna de identidad de la tabla o la vista al importar los datos; SQL Server asigna automáticamente valores únicos para la columna.
Para obtener más información, vea DBCC CHECKIDENT (Transact-SQL).
La opción -E tiene un requisito de permisos especial.
Para obtener más información, vea "Comentarios" más adelante en este tema.
-
-f
format_file
-
Especifica la ruta de acceso completa de un archivo de formato.
El significado de esta opción depende del entorno en el que se utiliza, como se indica a continuación:
-
Si se usa -f con la opción format, se crea el archivo format_file especificado para la tabla o la vista especificada.
Para crear un archivo de formato XML, especifique también la opción -x. Para obtener más información, vea Crear un archivo de formato (SQL Server).
-
Si se usa con la opción in u out, -f requiere un archivo de formato existente.
Nota
|
|
El uso de un archivo de formato con la opción in u out es opcional.
En ausencia de la opción -f, si no se especifica -n, -c, -w o -N, el comando solicita información de formato y permite guardar las respuestas en un archivo de formato (cuyo nombre de archivo predeterminado es Bcp.fmt).
|
Si format_file comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -f y el valor format_file.
-
-F
first_row
-
Especifica el número de la primera fila que se exportará desde una tabla o que se importará desde un archivo de datos.
Este parámetro requiere un valor superior a (>) 0 pero inferior a (<) o igual que (=) el número total de filas. En ausencia de este parámetro, el valor predeterminado es la primera fila del archivo.
first_row puede ser un valor entero positivo hasta 2^63-1.
-F
first_row es de base 1.
-
-h
"
hint[ ,... n] "
-
Especifica las sugerencias que deben usarse durante una importación de datos masiva en una tabla o en una vista.
-
ORDER(column[ASC | DESC] [,...n])
-
Indica el criterio de ordenación de los datos en el archivo de datos.
El rendimiento de la importación masiva mejora si los datos importados se ordenan según el índice agrupado de la tabla, si lo hay. Si el archivo de datos se ordena siguiendo otro criterio que no sea el orden de una clave de índice clúster, o si no hay ningún índice clúster en la tabla, la cláusula ORDER se pasa por alto. Los nombres de columna facilitados deben ser nombres válidos en la tabla de destino. De forma predeterminada, bcp supone que el archivo de datos no está ordenado. En las importaciones masivas optimizadas, SQL Server también valida que los datos importados estén ordenados.
-
ROWS_PER_BATCH =bb
-
Número de filas de datos por lote (igual a bb).
Se usa cuando no se especifica -b, por lo que el archivo de datos completo se envía al servidor en una sola transacción. El servidor optimiza la carga masiva según el valor bb. De forma predeterminada, el valor de ROWS_PER_BATCH es desconocido.
-
KILOBYTES_PER_BATCH = cc
-
Número aproximado de kilobytes (KB) de datos por lote (igual que cc).
De forma predeterminada, el valor de KILOBYTES_PER_BATCH es desconocido.
-
TABLOCK
-
Especifica que se adquiera un bloqueo de tabla de actualización masiva para la duración de la operación de carga masiva; de lo contrario, se adquiere un bloqueo de fila.
Esta sugerencia mejora notablemente el rendimiento, dado que, al mantenerse el bloqueo durante la operación de copia masiva, se reduce la contención en la tabla por bloqueo. Varios clientes pueden cargar una tabla simultáneamente si esta no tiene índices y se especifica TABLOCK. De forma predeterminada, el comportamiento de bloqueo viene determinado por la opción de tabla table lock on bulk load.
-
CHECK_CONSTRAINTS
-
Especifica que deben comprobarse todas las restricciones de la tabla o vista de destino durante la operación de importación masiva.
Sin la sugerencia CHECK_CONSTRAINTS, se omiten las restricciones CHECK y FOREIGN KEY y, después de la operación, la restricción sobre la tabla se marca como de no confianza.
Nota
|
|
Las restricciones UNIQUE, PRIMARY KEY y NOT NULL se aplican siempre.
|
En algún momento deberá comprobar las restricciones de toda la tabla.
Si la tabla no estaba vacía antes de la operación de importación masiva, el costo de revalidar la restricción puede exceder el costo de aplicar restricciones CHECK a los datos incrementales. Por lo tanto, se recomienda que se habilite normalmente la comprobación de restricciones durante una importación incremental masiva.
Una situación en la que quizá desee que las restricciones estén deshabilitadas (comportamiento predeterminado) es si los datos de entrada contienen filas que infringen las restricciones.
Con las restricciones CHECK deshabilitadas, puede importar los datos y después usar instrucciones de Transact-SQL para quitar los datos que no son válidos.
Nota
|
|
bcp valida y comprueba ahora los datos, lo que podría dar lugar a errores en los scripts si se ejecutan con datos no válidos de un archivo.
|
Nota
|
|
El modificador -m max_errors no se aplica a la comprobación de restricciones.
|
-
FIRE_TRIGGERS
-
Cuando se especifica con el argumento in, se ejecutarán todos los desencadenadores de inserción definidos en la tabla de destino durante la operación de copia masiva.
Si no se especifica FIRE_TRIGGERS, no se ejecutará ningún desencadenador. FIRE_TRIGGERS se omite con los argumentos out, queryout y format.
-
-i
input_file
-
Especifica el nombre de un archivo de respuesta, que contiene respuestas a las preguntas del símbolo del sistema para cada campo de datos cuando se realiza una copia masiva con el modo interactivo (cuando no se especifica -n, -c, -w ni -N).
Si input_file comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -i y el valor input_file.
-
-k
-
Especifica que las columnas vacías deben conservar un valor NULL durante la operación, en vez de tener valores predeterminados para las columnas insertadas.
Para obtener más información, vea Mantener valores NULL o usar valores predeterminados durante la importación masiva (SQL Server).
-
-K
application_intent
-
Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor.
El único valor que es posible es ReadOnly. Si no se especifica -K, la utilidad bcp no admitirá la conectividad con una réplica secundaria en el grupo de disponibilidad AlwaysOn. Para obtener más información, vea Secundarias activas: réplicas secundarias legibles (grupos de disponibilidad AlwaysOn).
-
-L
last_row
-
Especifica el número de la última fila que se exportará desde una tabla o que se importará desde un archivo de datos.
Este parámetro requiere un valor superior a (>) 0 pero inferior a (<) o igual al (=) el número de la última fila. En ausencia de este parámetro, el valor predeterminado es la última fila del archivo.
last_row puede ser un valor entero positivo hasta 2^63-1.
-
-m
max_errors
-
Especifica el número máximo de errores de sintaxis que pueden producirse antes de que se cancele la operación de bcp.
Un error de sintaxis implica un error de conversión de datos en el tipo de datos de destino. El total max_errors excluye cualquier error que pueda detectarse solamente en el servidor, como las infracciones de restricciones.
Una fila que no puede copiar la utilidad bcp se omite y se cuenta como un error.
Si no se incluye esta opción, el valor predeterminado es 10.
Nota
|
|
La opción -m tampoco se aplica a la conversión de tipos de datos money o bigint.
|
-
-n
-
Realiza la operación de copia masiva con los tipos de datos nativos (base de datos) de los datos.
Esta opción no efectúa una petición para cada campo, sino que usa los valores nativos.
Para obtener más información, vea Usar el formato nativo para importar o exportar datos (SQL Server).
-
-N
-
Realiza la operación de copia masiva con los tipos de datos nativos (de la base de datos) para datos que no sean de caracteres y con datos Unicode para los datos de caracteres.
Esta opción es una alternativa de mayor rendimiento que la opción -w y tiene como objeto la transferencia de datos de una instancia de SQL Server a otra mediante un archivo de datos. No realiza una petición para cada campo. Utilice esta opción cuando vaya a transferir datos que contengan caracteres extendidos ANSI y desee aprovechar el rendimiento del modo nativo.
Para obtener más información, vea Usar el formato nativo Unicode para importar o exportar datos (SQL Server).
Si exporta y, a continuación, importa datos al mismo esquema de tabla mediante bcp.exe con -N,puede aparecer una advertencia de truncamiento si hay una columna de caracteres no Unicode de longitud fija (por ejemplo, char(10)).
La advertencia puede omitirse.
Una manera de resolver esta advertencia es usar -n en lugar de -N.
-
-o
output_file
-
Especifica el nombre de un archivo que recibe la salida redirigida desde el símbolo del sistema.
Si output_file comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -o y el valor output_file.
-
-P
password
-
Especifica la contraseña para el identificador de inicio de sesión.
Si no se usa esta opción, el comando bcp solicitará una contraseña. Si se usa esta opción al final del símbolo del sistema sin especificar ninguna contraseña, bcp usa la contraseña predeterminada (NULL).
Nota de seguridad
|
|
No utilice una contraseña en blanco. Utilice una contraseña segura.
|
Para enmascarar la contraseña, no especifique la opción -P junto con la opción -U.
En su lugar, después de especificar bcp junto con la opción -U y otros modificadores (sin especificar -P), presione ENTRAR y el comando le solicitará una contraseña. Este método garantiza que la contraseña se enmascare al especificarla.
Si password comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -P y el valor password.
-
-q
-
Ejecuta la instrucción SET QUOTED_IDENTIFIERS ON en la conexión entre la utilidad bcp y una instancia de SQL Server.
Use esta opción para especificar una base de datos, un propietario, una tabla o un nombre de vista que contenga un espacio o una comilla simple. Englobe la totalidad del nombre de tres partes de la vista o tabla entre comillas (" ").
Para especificar un nombre de base de datos que contenga un espacio o una comilla simple, debe usar la opción –q.
-q
no se aplica a los valores que se pasan a -d.
Para obtener más información, vea Comentarios, más adelante en este tema.
-
-r
row_term
-
Especifica el terminador de la fila.
El valor predeterminado es \n (carácter de nueva línea). Use este parámetro para sustituir el terminador de fila predeterminado. Para obtener más información, vea Especificar terminadores de campo y de fila (SQL Server).
Si especifica el terminador de fila en notación hexadecimal en un comando bcp.exe, el valor se truncará en 0x00.
Por ejemplo, si especifica 0x410041, se usará 0x41.
Si row_term comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -r y el valor row_term.
-
-R
-
Especifica que se realice la copia masiva de datos de moneda, fecha y hora en SQL Server con el formato regional definido para la configuración regional del equipo cliente.
De forma predeterminada, la configuración regional se omite.
-
-S
server_name[ \instance_name]
-
Especifica la instancia de SQL Server a la que hay que conectarse.
Si no se especifica ningún servidor, la utilidad bcp se conecta a la instancia predeterminada de SQL Server en el equipo local. Esta opción es necesaria cuando se ejecuta un comando bcp desde un equipo remoto de la red o desde una instancia local con nombre. Para establecer una conexión con la instancia predeterminada de SQL Server en un servidor, especifique únicamente server_name. Para conectarse a una instancia con nombre de SQL Server, especifique server_name\instance_name.
-
-t
field_term
-
Especifica el terminador del campo.
El valor predeterminado es \t (carácter de tabulación). Use este parámetro para invalidar el terminador de campo predeterminado. Para obtener más información, vea Especificar terminadores de campo y de fila (SQL Server).
Si especifica el terminador de campo en notación hexadecimal en un comando bcp.exe, el valor se truncará en 0x00.
Por ejemplo, si especifica 0x410041, se usará 0x41.
Si field_term comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -t y el valor field_term.
-
-T
-
Especifica que la utilidad bcp se va a conectar a SQL Server mediante una conexión de confianza que usa la seguridad integrada.
No es necesario usar las credenciales de seguridad del usuario de la red, login_id ni password. Si no se especifica –T, es necesario especificar –U y –P para iniciar sesión correctamente.
-
-U
login_id
-
Especifica el identificador de inicio de sesión para conectar con SQL Server.
Nota de seguridad
|
|
Cuando la utilidad bcp se conecta con SQL Server mediante una conexión de confianza que usa seguridad integrada, utilice la opción -T (conexión de confianza) en lugar de la combinación user name y password.
|
-
-v
-
Facilita información acerca del número de versión y de los derechos de autor de la utilidad bcp.
-
-V (80 | 90 | 100)
-
Realiza la operación de copia masiva con tipos de datos de versiones anteriores de SQL Server.
Esta opción no realiza una petición para cada campo, sino que utiliza los valores predeterminados.
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008 y SQL Server 2008 R2
Por ejemplo, para generar datos de tipos no compatibles con SQL Server 2000, pero que se introdujeron en versiones posteriores de SQL Server, use la opción -V80.
Para obtener más información, vea Importar datos con formato nativo y de caracteres de versiones anteriores de SQL Server.
-
-w
-
Realiza la operación de copia masiva con caracteres Unicode.
Esta opción no realiza una petición para cada campo; usa nchar como tipo de almacenamiento, sin prefijos, con \t (carácter de tabulación) como separador de campos y \n (carácter de nueva línea) como terminador de filas.
-w
no es compatible con -c.
Para obtener más información, vea Usar el formato de caracteres Unicode para importar o exportar datos (SQL Server).
-
-x
-
Si se usa con las opciones format y -fformat_file , genera un archivo de formato basado en XML en lugar del archivo de formato predeterminado que no es XML.
El modificador -x no funciona cuando se importan o exportan datos. Genera un error si se usa sin format ni -fformat_file.