Académique Documents
Professionnel Documents
Culture Documents
La utilidad de programa de pcopia masiva (bcp) hace copias masivas de los datos entre una
instancia de MicrosoftSQL Server y un archivo de datos en un formato especificado por el
usuario. La utilidad bcp se puede usar para importar un número elevado de filas nuevas en
tablas de SQL Server o para exportar datos de tablas a archivos de datos. Excepto cuando se
usa con la opción queryout , la utilidad no requiere ningún conocimiento de Transact-SQL. Para
importar datos en una tabla, debe usar un archivo de formato creado para esa tabla o
comprender la estructura de la tabla y los tipos de datos que son válidos para sus columnas.
Icono de vínculo de tema Para conocer las convenciones que se emplean en la sintaxis de bcp,
vea Convenciones de sintaxis Transact-SQL (Transact-SQL).
Nota
Si usa bcp para hacer una copia de seguridad de los datos, cree un archivo de formato para
registrar el formato de datos. Los archivos de datos debcp no incluyen ningún esquema ni
información de formato, de modo que si se quita una tabla o vista, y no tiene un archivo de
formato, es posible que no pueda importar los datos.
download Descargar Utilidades de la línea de comandos 15.0 de Microsoft para SQL Server
(x64)
download Descargar Utilidades de la línea de comandos 15.0 de Microsoft para SQL Server
(x86)
Las herramientas de línea de comandos son de disponibilidad general (GA), sin embargo, se
lanzan con Versión preliminar de SQL Server 2019el paquete de instalación de.
Información de versión
Requisitos del sistema Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server
2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows
Server 2012 R2 este componente requiere Windows Installer 4,5 y Microsoft ODBC driver 17,3
para SQL Server.
Sintaxis
[-a packet_size]
[-b batch_size]
[-c]
[-d database_name]
[-e err_file]
[-E]
[-f format_file]
[-F first_row]
[-h"hint [,...n]"]
[-i input_file]
[-k]
[-K application_intent]
[-L last_row]
[-m max_errors]
[-n]
[-N]
[-o output_file]
[-P password]
[-q]
[-r row_term]
[-R]
[-S [server_name[\instance_name]]
[-t field_term]
[-T]
[-U login_id]
[-v]
[-w]
[-x]
Argumentos
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 2^63 - 1 filas, como
máximo.
database_name
out copia desde la tabla o la vista de la base de datos a 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, -wo -N) y los
delimitadores de la vista o de la tabla. Cuando se copian datos en bloque, el comando bcp
puede hacer referencia a un archivo de formato, lo que evita tener que 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). Hay que especificar nul como el 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 owner no se especifica 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. Utilice 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, después, 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. Se
puede establecer una opción de configuración de servidor con 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 65 535; 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 usado.
-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 caracteres. 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).
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, varcharo text con valores de
caracteres mayores que 127 o menores que 32.
Nota
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.
Las versiones anteriores a la versión 13 (SQL Server 2016 (13.x)) no admiten la página de
códigos 65001 (codificación UTF-8). Las versiones a partir de la versión 13 pueden importar
codificación UTF-8 a versiones anteriores de SQL Server.
-d database_name
-e err_file
Especifica la ruta de acceso 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 de 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.
La opción -E tiene un requisito de permisos especial. Para más información, consulte la sección
"Comentarios" que aparece más adelante en este tema.
-f format_file
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).
Nota
Si format_file comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -f
y el valor de 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 is 1-based.
-G
El cliente usa este modificador al conectarse a Azure SQL Database o SQL Data Warehouse
para especificar que el usuario se autentica mediante la autenticación de Azure Active
Directory. El modificador-G requiere la versión 14.0.3008.27 o posterior. Para determinar su
versión, ejecute bcp -v. Para obtener más información, consulte usar la autenticación de Azure
Active Directory para la autenticación con SQL Database o SQL Data Warehouse.
Importante
La opción -G solo es válida para Base de datos SQL de Azure y el almacenamiento de datos de
Azure. La autenticación integrada de AAD y la autenticación interactiva no se admite
actualmente en Linux o macOS.
Sugerencia
Para comprobar si su versión de BCP incluye compatibilidad con el tipo de autenticación Azure
Active Directory (AAD) , BCP-- (<espacio BCP<<> Dash > Dash >) y compruebe que ve-G en la
lista de argumentos disponibles.
Si desea utilizar un nombre de usuario y una contraseña de Azure Active Directory, puede
proporcionar la opción - G y usar también el nombre de usuario y la contraseña
proporcionando las opciones - U y -P .
Copiar
Copiar
Copiar
Copiar
La autenticación interactiva de Azure AD para Azure SQL Database y SQL Data Warehouse le
permite usar un método interactivo que admita la autenticación multifactor. Para obtener más
información, consulte Active Directory la autenticación interactiva.
Azure AD Interactive requiere la versión de BCP 15.0.1000.34 o posterior, así como la versión
17,2 o posterior de ODBC.
En el siguiente ejemplo se exportan datos mediante Azure AD modo interactivo que indica el
nombre de usuario, donde el usuario representa una cuenta de AAD. Este es el mismo ejemplo
usado en la sección anterior: Azure Active Directory nombre de usuario y contraseña.
El modo interactivo requiere que se especifique una contraseña manualmente, o para las
cuentas con multi-factor Authentication habilitada, complete el método de autenticación MFA
configurado.
Copiar
En caso de que un usuario de Azure ad sea un dominio federado mediante una cuenta de
Windows, el nombre de usuario que se requiera en la línea de comandos joe@contoso.com
contendrá su cuenta de dominio (por ejemplo, vea a continuación):
Copiar
Si los usuarios invitados existen en un Azure AD específico y forman parte de un grupo que
existe en la base de datos de SQL que tiene permisos de base de datos para ejecutar el
comando BCP, se usa *keith0@adventureworks.com* su alias de usuario invitado (por
ejemplo,).
-h "load hints [ ,... n] " Especifica las sugerencias que se deben usar durante una importación
masiva de datos en una tabla o una vista.
ROWS_PER_BATCH = bb
Número de filas de datos por lote (como 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
Nota
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
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, y ello podría dar lugar a errores en los scripts si se
ejecutan con datos no válidos de un archivo.
Nota
FIRE_TRIGGERS
-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, -wo -N ).
Si input_file comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -i y
el valor de 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 en bloque (SQL Server).
-K application_intent
-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.
-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 de max_errors excluye cualquier error que pueda detectarse
solamente en el servidor, como las infracciones de restricciones.
Una fila que no puede copiarse con la utilidad bcp se omite y se cuenta como un error. Si no se
incluye esta opción, el valor predeterminado es 10.
Nota
-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, después, 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 por un guión (-) o una barra diagonal (/), no incluya un espacio entre -o
y el valor de output_file .
-P password
Importante
Si password comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -P y
el valor de password .
-q
Para especificar un nombre de base de datos que contenga un espacio o una comilla simple,
debe usar la opción -q.
Para más información, consulte la sección Comentariosque aparece más adelante en este
tema.
-r término_de fila
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 row_term comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -r y
el valor de 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.
-t término_de campo
Si field_term comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -t
y el valor de field_term .
-T
Especifica que la utilidad bcp se conecta a SQL Server con una conexión de confianza utilizando
la seguridad integrada. No es necesario usar las credenciales de seguridad del usuario de la
red, login_idy password . Si no se especifica -T , es necesario especificar -U y -P para iniciar
sesión correctamente.
Importante
Si la utilidad bcp se conecta a SQL Server mediante una conexión de confianza que usa
seguridad integrada, use la opción -T (conexión de confianza) en lugar de la combinación user
name y password . Cuando la utilidad bcp se está conectado con SQL Database o SQL Data
Warehouse, no se admite la autenticación de Windows o la autenticación de Azure Active
Directory. Use las opciones -U y -P .
-U login_id
Especifica el identificador de inicio de sesión para conectar con SQL Server.
Importante
Si la utilidad bcp se conecta a SQL Server mediante una conexión de confianza que usa
seguridad integrada, use la opción -T (conexión de confianza) en lugar de la combinación user
name y password . Cuando la utilidad bcp se está conectado con SQL Database o SQL Data
Warehouse, no se admite la autenticación de Windows o la autenticación de Azure Active
Directory. Use las opciones -U y -P .
-v
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.
Por ejemplo, para generar datos de tipos no compatibles con SQL Server 2000 (8.x), 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 -f format_file , genera un archivo de formato basado en
XML en lugar del archivo de formato predeterminado que no es XML. -x no funciona cuando se
importan o exportan datos. Genera un error si se usa sin format ni -f format_file.
Comentarios
La utilidad bcp 13.0 se instala al instalar las herramientas de MicrosoftSQL Server 2017 . Si hay
instaladas herramientas para SQL Server 2017 y para una versión anterior de SQL Server, según
el orden de valores de la variable de entorno PATH, es posible que se use el cliente bcp
anterior en lugar del cliente bcp 13.0. Esta variable de entorno define el conjunto de
directorios que Windows usa para buscar archivos ejecutables. Para saber qué versión está
usando, ejecute el comando bcp /v en el símbolo del sistema de Windows. Para obtener
información acerca del establecimiento de la ruta de comandos en la variable de entorno
PATH, vea la Ayuda de Windows.
La utilidad bcp también se puede descargar por separado desde el Feature Pack de Microsoft
SQL Server 2016. Seleccione ENU\x64\MsSqlCmdLnUtils.msi o ENU\x86\MsSqlCmdLnUtils.msi.
Los archivos con formato XML solamente se admiten cuando se instalan herramientas de SQL
Server con SQL Server Native Client.
Para obtener más información sobre dónde encontrar o cómo ejecutar la utilidad bcp y sobre
las convenciones de sintaxis de las utilidades del símbolo del sistema, vea Referencia de la
utilidad del símbolo del sistema (motor de base de datos).
Para obtener más información sobre cómo preparar datos para operaciones de importación y
exportación en bloque, vea Preparar los datos para exportar o importar en bloque (SQL
Server).
Para obtener más información sobre cuándo se incluyen en el registro de transacciones las
operaciones de inserción de filas que se efectúan durante una importación en bloque, vea
Requisitos previos para el registro mínimo durante la importación en bloque.
En SQL Server 2017, la utilidad bcp admite archivos de datos nativos compatibles con SQL
Server 2000 (8.x), SQL Server 2005 (9.x), SQL Server 2008, SQL Server 2008 R2y SQL Server
2012 (11.x).
Los valores del archivo de datos que se importan para las columnas calculadas o timestamp se
omiten y SQL Server asigna valores automáticamente. Si el archivo de datos no contiene
valores para las columnas calculadas o timestamp de la tabla, use un archivo de formato para
especificar que deben pasarse por alto las columnas calculadas o timestamp de la tabla al
importar datos; SQL Server asigna valores para la columna automáticamente.
Las columnas calculadas y timestamp se copian en bloque desde SQL Server en un archivo de
datos de la forma habitual.
SQL Server pueden incluir caracteres tales como espacios insertados y comillas. Tales
identificadores deben tratarse de la siguiente manera:
Por ejemplo, el siguiente comando bcp out crea un archivo de datos denominado Currency
Types.dat:
Copiar
Para especificar un nombre de base de datos que contenga un espacio o comillas, hay que usar
la opción -q .
Para los nombres de vista, tabla o propietario que contienen espacios insertados o comillas,
puede hacer lo siguiente:
Incluir el nombre de vista, tabla o propietario entre corchetes ([]) dentro de las comillas.
Validar datos
bcp valida y comprueba ahora los datos, y ello podría dar lugar a errores en los scripts si se
ejecutan con datos no válidos de un archivo. Por ejemplo, bcp ahora comprueba que:
Es posible que los formularios de datos no válidos que podían importarse de forma masiva en
versiones anteriores de SQL Server no se carguen ahora, mientras que, en anteriores
versiones, el error no se producía hasta que un cliente intentaba tener acceso a datos no
válidos. La validación agregada evita sorpresas cuando se consultan los datos después de una
carga masiva.
Para importar o exportar de forma masiva datos SQLXML, utilice uno de los tipos de datos
siguientes en el archivo de formato.
SQLNCHAR o SQLNVARCHAR Los datos se envían como datos Unicode. Tiene el mismo
efecto que especificar el modificador -w sin indicar un archivo de formato.
Permisos
Una operación bcp in requiere como mínimo permisos SELECT/INSERT en la tabla de destino.
Además, se requiere el permiso ALTER TABLE si cualquiera de las siguientes afirmaciones es
verdadera:
Nota
La deshabilitación de restricciones es el comportamiento predeterminado. Para habilitar las
restricciones de forma explícita, use la opción -h con la sugerencia CHECK_CONSTRAINTS.
Nota
Nota
El requisito del permiso ALTER TABLE en la tabla de destino era nuevo en SQL Server 2005
(9.x). Este nuevo requisito podría hacer que los scripts de bcp que no exigen las
comprobaciones de restricciones y desencadenadores devuelvan un error si la cuenta de
usuario no tiene los permisos de tabla ALTER para la tabla de destino.
Esta sección contiene recomendaciones para el modo de carácter (-c) y el modo nativo (-n).
(Administrador o usuario) Cuando sea posible, utilice el formato nativo (-n) para evitar
problemas de separador. Utilice el formato nativo para exportar e importar utilizando SQL
Server. Exporte datos de SQL Server utilizando la opción -c o -w si los datos se van a importar a
una base de datos que no es deSQL Server .
(Administrador) Compruebe los datos al utilizar BCP OUT. Por ejemplo, cuando se utiliza BCP
OUT, BCP IN y luego BCP OUT, compruebe que los datos se han exportado correctamente y
que los valores de terminador no se utilizan como parte de algún valor de datos. Considere la
posibilidad de reemplazar los terminadores predeterminados (utilizando las opciones -t y -r)
por valores hexadecimales aleatorios para evitar conflictos entre los valores de terminador y
los valores de datos.
(Usuario) Utilice un terminador largo y único (cualquier secuencia de bytes o caracteres) para
minimizar la posibilidad de conflicto con el valor de cadena real. Esto se puede realizar
utilizando las opciones -t y -r.
Ejemplos
Los ejemplos siguientes usan la base de datos de ejemplo WideWorldImporters para SQL
Server (desde 2016) y Azure SQL Database. WideWorldImportersse puede descargar desde
https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0.
Consulte RESTORE (Transact-SQL) para conocer la sintaxis para restaurar la base de datos de
ejemplo. Salvo que se especifique lo contrario, los ejemplos suponen que usa la autenticación
de Windows y que existe una conexión de confianza con la instancia del servidor en la que se
ejecuta el comando bcp . Muchos de los ejemplos usarán un directorio denominado D:\BCP .
SQL
Copiar
USE WideWorldImporters;
GO
BEGIN
FROM WideWorldImporters.Warehouse.StockItemTransactions
WHERE 1 = 2;
(StockItemTransactionID ASC);
END
Nota
Copiar
bcp -v
Basic
Copiar
Expandido
Copiar
En el ejemplo se da por hecho que usa la autenticación de modo mixto; hay que usar el
modificador -U para especificar su identificador de inicio de sesión. Además, a menos que se
esté conectando a la instancia predeterminada de SQL Server en el equipo local, use el
modificador -S para especificar el nombre del sistema y, opcionalmente, un nombre de
instancia.
En un símbolo del sistema, escriba el comando siguiente: (El sistema pedirá la contraseña.)
Copiar
Básico
Copiar
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN
D:\BCP\StockItemTransactions_character.bcp -c -T
Expandido
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN
D:\BCP\StockItemTransactions_native.bcp -b 5000 -h "TABLOCK" -m 1 -n -e
D:\BCP\Error_in.log -o D:\BCP\Output_in.log -S -T
Para copiar una columna específica, puede usar la opción queryout . El siguiente ejemplo copia
únicamente la columna StockItemTransactionID de la tabla Warehouse.StockItemTransactions
en un archivo de datos.
Copiar
Para copiar una fila específica, puede usar la opción queryout . El siguiente ejemplo copia
únicamente la fila correspondiente a la persona con el nombre Amy Trefl de la tabla
WideWorldImporters.Application.People en un archivo de datos Amy_Trefl_c.bcp. Nota: El
modificador -d se usa para identificar la base de datos.
Copiar
Copiar
Copiar
Nota
Para usar el modificador -x , debe contar con un cliente bcp 9.0. Para información sobre cómo
usar el cliente bcp 9.0, consulte la sección "Comentarios".
Para más información, consulte Archivos de formato no XML (SQL Server) y Archivos de
formato XML (SQL Server).
Para usar un archivo de formato creado anteriormente al importar datos a una instancia de
SQL Server, use el modificador -f con la opción in . Por ejemplo, el siguiente comando copia de
forma masiva el contenido de un archivo de datos, StockItemTransactions_character.bcp, en
una copia de la tabla Warehouse.StockItemTransactions_bcp mediante el archivo de formato
creado anteriormente, StockItemTransactions_c.xml. Nota: El modificador -L se usa para
importar únicamente los 100 primeros registros.
Copiar
bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp in
D:\BCP\StockItemTransactions_character.bcp -L 100 -f D:\BCP\StockItemTransactions_c.xml -T
Nota
Los archivos de formato son útiles cuando los campos del archivo de datos son diferentes a los
de las columnas de la tabla; por ejemplo, en su numeración, orden o tipos de datos. Para
obtener más información, vea Archivos de formato para importar o exportar datos (SQL
Server).
Copiar
Copiar