Conexión con bcp

Descargar controlador ODBC

La utilidad bcp está disponible en Microsoft ODBC Driver for SQL Server en Linux y macOS. En esta página se documentan las diferencias de la versión de Windows de bcp.

  • El terminador de campo es una tabulación ("\t").

  • El terminador de línea es una nueva línea ("\n").

  • El modo de carácter es el formato preferido de los archivos de formato bcp y de datos que no contienen caracteres extendidos.

Nota

Las barras diagonales inversas "\" de los argumentos de línea de comandos deben entrecomillarse o contener caracteres de escape. Por ejemplo, para especificar una nueva línea como terminador de fila personalizado debe utilizar uno de los siguientes mecanismos:

  • -r\\n
  • -r"\n"
  • -r'\n'

A continuación, se muestra una invocación de ejemplo de un comando de bcp para copiar filas de la tabla en un archivo de texto:

bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx

Opciones disponibles

En la versión actual, se encuentran disponibles las siguientes opciones y sintaxis:

[database.]schema.tableindata_file | outdata_file

-apacket_size
Especifica el número de bytes por paquete de red enviados y recibidos por el servidor.

-bbatch_size
Especifica el número de filas por lote de datos importados.

-c
Utiliza un tipo de datos de caracteres.

-ddatabase_name
Especifica la base de datos a la que conectarse.

-D
Hace que el valor transmitido a la opción bcp -S se interprete como un nombre de origen de datos (DSN). Para obtener más información, vea la sección "Compatibilidad con DSN en sqlcmd y bcp" de Connecting with sqlcmd.

-eerror_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.

-E
Utiliza el valor o los valores de identidad del archivo de datos importado en la columna de identidad.

-fformat_file
Especifica la ruta de acceso completa de un archivo de formato.

-Ffirst_row
Especifica el número de la primera fila que se exportará desde una tabla o que se importará desde un archivo de datos.

-G
El cliente usa este modificador al conectarse a la base de datos de Azure SQL, Azure SQL Managed Instance o Azure Synapse Analytics para especificar que el usuario se autentica con Microsoft Entra ID (anteriormente llamado Azure Active Directory). Se puede combinar con la opción -P para usar la autenticación de token de acceso (versión 17.8 o posteriores). El modificador -G requiere al menos sqlcmd versión 17.6. Para determinar su versión, ejecute bcp -v.

Importante

La opción -G solo es válida para la base de datos de Azure SQL, Azure SQL Managed Instance y Azure Synapse Analytics.

La autenticación interactiva de Microsoft Entra no se admite actualmente ni en Linux ni en macOS. La autenticación integrada de Microsoft Entra requiere la versión 17.6.1 o superior de Microsoft ODBC Driver 17 para SQL Server y un entorno de Kerberos configurado correctamente.

-k
Especifica que las columnas vacías deben mantener un valor NULL durante la operación, en lugar de tener valores predeterminados para las columnas insertadas.

-l
Especifica un tiempo de espera de inicio de sesión. La opción -l especifica el número de segundos que tienen que transcurrir antes de que un inicio de sesión de SQL Server agote el tiempo de espera cuando se trate de conectar a un servidor. El tiempo de espera de inicio de sesión predeterminado es de 15 segundos. El período de tiempo de espera de inicio de sesión debe ser un número comprendido entre 0 y 65534. Si el valor proporcionado no es numérico o no está dentro de ese rango, bcp genera un mensaje de error. Un valor de 0 especifica un tiempo de espera infinito.

-Llast_row
Especifica el número de la última fila que se exportará desde una tabla o que se importará desde un archivo de datos.

-mmax_errors
Especifica el número máximo de errores de sintaxis que pueden producirse antes de que se cancele la operación bcp.

-n
Utiliza los tipos de datos nativos (de la base de datos) de los datos para realizar la operación de copia masiva.

-Ppassword
Especifica la contraseña para el identificador de inicio de sesión. Cuando se usa con la opción -G sin -U, se especifica un archivo que contiene un token de acceso (versión 17.8 o posteriores). El archivo de token debe estar en formato UTF-16LE (sin BOM).

Los tokens de acceso se pueden obtener a través de varios métodos. Es importante asegurarse de que el token de acceso es correcto byte a byte, ya que se enviará tal y como está. A continuación se muestra un comando de ejemplo que obtiene un token de acceso. El comando usa los comandos de la CLI de Azure y Linux, y los guarda en un archivo con el formato adecuado. Si la codificación predeterminada del sistema o terminal no es ASCII o UTF-8, es posible que tenga que ajustar las opciones iconv. Asegúrese de proteger cuidadosamente el archivo resultante y eliminarlo cuando ya no sea necesario.

az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile

-q
Ejecuta la instrucción SET QUOTED_IDENTIFIERS ON en la conexión entre la utilidad bcp y una instancia de SQL Server.

-rrow_terminator
Especifica el terminador de la fila.

-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.

-Sserver
Especifica el nombre de la instancia de SQL Server a la que se va a conectar o, si se utiliza -D, un DSN.

-tfield_terminator
Especifica el terminador del campo.

-T
Especifica que la utilidad bcp se conecte a SQL Server con una conexión de confianza (seguridad integrada).

-u
Confía en el certificado de servidor. (disponible desde bcp versión 18)

-Ulogin_id
Especifica el identificador de inicio de sesión para conectar con SQL Server.

-v
Facilita información acerca del número de versión y de los derechos de autor de la utilidad bcp.

-w
Utiliza caracteres Unicode para realizar la operación de copia masiva.

En esta versión, se admiten los caracteres Latin-1 y UTF-16.

-Y[s|m|o]
Especifica el modo de cifrado de la conexión. Las opciones son Strict, Mandatory y Optional (Estricto, Obligatorio y Opcional). El uso de -Y sin parámetros usa el modo de cifrado Mandatory (Obligatorio) y es equivalente a -Ym. (disponible desde bcp versión 18)

Opciones no disponibles

En la versión actual, se encuentran disponibles las siguientes opciones y sintaxis:

-C
Especifica la página de códigos de los datos incluidos en el archivo de datos.

-hhint
Especifica las sugerencias que deben usarse durante una importación de datos masiva en una tabla o vista.

-iinput_file
Especifica el nombre de un archivo de respuesta.

-N
Utiliza los tipos de datos nativos (de la base de datos) para datos que no sean de caracteres, así como datos Unicode para los datos de caracteres.

-ooutput_file
Especifica el nombre de un archivo que recibe la salida redirigida desde el símbolo del sistema.

-V (80 | 90 | 100)
Utiliza los tipos de datos de una versión anterior de 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.

Consulte también

Conexión con sqlcmd
Notas de la versión