bcp (utilidad)bcp Utility

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Para el uso de bcp en Linux, consulte instalar sqlcmd y bcp en Linux.For using bcp on Linux, see Install sqlcmd and bcp on Linux.

Para obtener información detallada sobre el uso de bcp con Azure SQL Data Warehouse, consulte carga de datos con bcp.For detailed information about using bcp with Azure SQL Data Warehouse, see Load data with bcp.

La utilidad de programa de pcopia masiva (bcp) hace copias masivas de los datos entre una instancia de MicrosoftMicrosoftSQL ServerSQL Server y un archivo de datos en un formato especificado por el usuario.The bulk copy program utility (bcp) bulk copies data between an instance of MicrosoftMicrosoft SQL ServerSQL Server and a data file in a user-specified format. La utilidad bcp se puede usar para importar un número elevado de filas nuevas en tablas de SQL ServerSQL Server o para exportar datos de tablas a archivos de datos.The bcp utility can be used to import large numbers of new rows into SQL ServerSQL Server tables or to export data out of tables into data files. Excepto cuando se usa con la opción queryout , la utilidad no requiere ningún conocimiento de Transact-SQLTransact-SQL.Except when used with the queryout option, the utility requires no knowledge of Transact-SQLTransact-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.To import data into a table, you must either use a format file created for that table or understand the structure of the table and the types of data that are valid for its columns.

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).Topic link icon For the syntax conventions that are used for the bcp syntax, see Transact-SQL Syntax Conventions (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.If you use bcp to back up your data, create a format file to record the data format. 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.bcp data files do not include any schema or format information, so if a table or view is dropped and you do not have a format file, you may be unable to import the data.

Descargue la versión más reciente de la utilidad bcpDownload the latest version of bcp Utility

download Descargar Utilidades de la línea de comandos 15.0 de Microsoft para SQL Server (x64)download Download Microsoft Command Line Utilities 15.0 for SQL Server (x64)
download Descargar Utilidades de la línea de comandos 15.0 de Microsoft para SQL Server (x86)download Download Microsoft Command Line Utilities 15.0 for SQL Server (x86)

Las herramientas de línea de comandos son la disponibilidad General (GA), sin embargo, se lanzan con el paquete de instalador para Versión preliminar de SQL Server 2019SQL Server 2019 preview.The command line tools are General Availability (GA), however they are being released with the installer package for Versión preliminar de SQL Server 2019SQL Server 2019 preview.

Información de versiónVersion Information

Número de versión: 15.0Release number: 15.0
Número de compilación: 15.0.1000.34Build number: 15.0.1000.34
Fecha de lanzamiento: 18 de octubre de 2018Release date: October 18, 2018

La nueva versión de SQLCMD admite la autenticación de Azure AD, incluida la compatibilidad con la autenticación multifactor (MFA) para las características de SQL Database, SQL Data Warehouse y Always Encrypted.The new version of SQLCMD supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database, SQL Data Warehouse, and Always Encrypted features. El nuevo BCP admite autenticación de Azure AD, incluida la compatibilidad con la autenticación multifactor (MFA) para SQL Database y SQL Data Warehouse.The new BCP supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database and SQL Data Warehouse.

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 también requiere Windows Installer 4.5 y 17.3 del Microsoft ODBC Driver para SQL Server.System Requirements 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 This component requires both Windows Installer 4.5 and Microsoft ODBC Driver 17.3 for SQL Server.

Para comprobar la versión BCP ejecutar bcp /v comando y confirme que 15.0.1000.34 o superior está en uso.To check the BCP version execute bcp /v command and confirm that 15.0.1000.34 or higher is in use.

SintaxisSyntax
bcp [database_name.] schema.{table_name | view_name | "query"}
    {in data_file | out data_file | queryout data_file | format nul}
                                                                                                         
    [-a packet_size]
    [-b batch_size]
    [-c]
    [-C { ACP | OEM | RAW | code_page } ]
    [-d database_name]
    [-e err_file]
    [-E]
    [-f format_file]
    [-F first_row]
    [-G Azure Active Directory Authentication]
    [-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]
    [-V (80 | 90 | 100 | 110 | 120 | 130 ) ]
    [-w]
    [-x]

ArgumentosArguments

data_filedata_file
Es la ruta completa del archivo de datos.Is the full path of the data file. Cuando se importan datos de forma masiva a SQL ServerSQL Server, el archivo de datos contiene los datos que se van a copiar en la tabla o vista especificada.When data is bulk imported into SQL ServerSQL Server, the data file contains the data to be copied into the specified table or view. Cuando se realiza una exportación de datos de forma masiva desde SQL ServerSQL Server, el archivo de datos contiene los datos copiados desde la tabla o desde la vista.When data is bulk exported from SQL ServerSQL Server, the data file contains the data copied from the table or view. La ruta de acceso puede contener de 1 a 255 caracteres.The path can have from 1 through 255 characters. El archivo de datos puede contener 2^63 - 1 filas, como máximo.The data file can contain a maximum of 2^63 - 1 rows.

database_namedatabase_name
Es el nombre de la base de datos en la que reside la tabla o vista especificada.Is the name of the database in which the specified table or view resides. Si no se especifica, es la base de datos predeterminada para el usuario.If not specified, this is the default database for the user.

También puede especificar explícitamente el nombre de la base de datos con d-.You can also explicitly specify the database name with d-.

in data_file | out data_file | queryout data_file | format nulin data_file | out data_file | queryout data_file | format nul
Especifica la dirección de la copia masiva, de la siguiente manera:Specifies the direction of the bulk copy, as follows:

  • in copia desde un archivo en la vista o la tabla de la base de datos.in copies from a file into the database table or view.

  • out copia desde la tabla o la vista de la base de datos a un archivo.out copies from the database table or view to a file. Si se especifica un archivo ya existente, este se sobrescribe.If you specify an existing file, the file is overwritten. Al extraer datos, tenga en cuenta que la utilidad bcp representa una cadena vacía como nula y una cadena nula como vacía.When extracting data, note that the bcp utility represents an empty string as a null and a null string as an empty string.

  • queryout copia desde una consulta y debe especificarse solo cuando se copian datos de forma masiva desde una consulta.queryout copies from a query and must be specified only when bulk copying data from a query.

  • 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.format creates a format file based on the option specified (-n, -c, -w, or -N) and the table or view delimiters. 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.When bulk copying data, the bcp command can refer to a format file, which saves you from re-entering format information interactively. 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.The format option requires the -f option; creating an XML format file, also requires the -x option. Para obtener más información, vea Crear un archivo de formato (SQL Server).For more information, see Create a Format File (SQL Server). Hay que especificar nul como el valor (format nul).You must specify nul as the value (format nul).

ownerowner
Es el nombre del propietario de la tabla o vista.Is the name of the owner of the table or view. owner es opcional si el usuario que realiza la operación es propietario de la tabla o vista especificada.owner is optional if the user performing the operation owns the specified table or view. 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 ServerSQL Server devuelve un mensaje de error y se cancela la operación.If owner is not specified and the user performing the operation does not own the specified table or view, SQL ServerSQL Server returns an error message, and the operation is canceled.

" query " Es una consulta Transact-SQLTransact-SQL que devuelve un conjunto de resultados." query " Is a Transact-SQLTransact-SQL query that returns a result set. 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.If the query returns multiple result sets, only the first result set is copied to the data file; subsequent result sets are ignored. Utilice comillas dobles para la consulta y comillas simples en los elementos que incruste en la consulta.Use double quotation marks around the query and single quotation marks around anything embedded in the query. queryout también se debe especificar cuando se copian datos desde una consulta.queryout must also be specified when bulk copying data from a query.

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.The query can reference a stored procedure as long as all tables referenced inside the stored procedure exist prior to executing the bcp statement. 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.For example, if the stored procedure generates a temp table, the bcp statement fails because the temp table is available only at run time and not at statement execution time. 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.In this case, consider inserting the results of the stored procedure into a table and then use bcp to copy the data from the table into a data file.

table_nametable_name
Es el nombre de la tabla de destino cuando se importan datos a SQL ServerSQL Server (in) y la tabla de origen cuando se exportan datos de SQL ServerSQL Server (out).Is the name of the destination table when importing data into SQL ServerSQL Server (in), and the source table when exporting data from SQL ServerSQL Server (out).

view_name view_name
Es el nombre de la vista de destino cuando se copian datos en SQL ServerSQL Server (in) y la vista de origen cuando se copian datos de SQL ServerSQL Server (out).Is the name of the destination view when copying data into SQL ServerSQL Server (in), and the source view when copying data from SQL ServerSQL Server (out). Solamente pueden usarse como vistas de destino aquellas vistas en las que todas las columnas hacen referencia a la misma tabla.Only views in which all columns refer to the same table can be used as destination views. Para obtener más información sobre las restricciones para copiar datos en vistas, vea INSERT (Transact-SQL).For more information on the restrictions for copying data into views, see INSERT (Transact-SQL).

-a packet_size-a packet_size
Especifica el número de bytes por paquete de red enviados y recibidos por el servidor.Specifies the number of bytes, per network packet, sent to and from the server. Se puede establecer una opción de configuración de servidor con SQL Server Management StudioSQL Server Management Studio (o el procedimiento almacenado del sistema sp_configure ).A server configuration option can be set by using SQL Server Management StudioSQL Server Management Studio (or the sp_configure system stored procedure). No obstante, la opción de configuración de servidor puede sustituirse individualmente mediante esta opción.However, the server configuration option can be overridden on an individual basis by using this option. packet_size puede oscilar entre 4096 y 65 535; el valor predeterminado es 4096.packet_size can be from 4096 to 65535 bytes; the default is 4096.

Un tamaño mayor de los paquetes puede mejorar el rendimiento de las operaciones de copia masiva.Increased packet size can enhance performance of bulk-copy operations. Si se pide un tamaño de paquete mayor, pero no puede concederse, se usa el valor predeterminado.If a larger packet is requested but cannot be granted, the default is used. Las estadísticas de rendimiento generadas por la utilidad bcp muestran el tamaño del paquete usado.The performance statistics generated by the bcp utility show the packet size used.

-b batch_size-b batch_size
Especifica el número de filas por lote de datos importados.Specifies the number of rows per batch of imported data. Cada lote se importa y registra como una transacción aparte que importa el lote entero antes de confirmarse.Each batch is imported and logged as a separate transaction that imports the whole batch before being committed. De forma predeterminada, todas las filas del archivo de datos se importan en un solo lote.By default, all the rows in the data file are imported as one batch. Para distribuir las filas en varios lotes, especifique un valor de batch_size inferior al número de filas del archivo de datos.To distribute the rows among multiple batches, specify a batch_size that is smaller than the number of rows in the data file. Si se produce un error en la transacción de un lote, solamente se revierten las inserciones del lote actual.If the transaction for any batch fails, only insertions from the current batch are rolled back. Los lotes importados por transacciones confirmadas no se ven afectados por los errores posteriores.Batches already imported by committed transactions are unaffected by a later failure.

No use esta opción junto con la opción -h " ROWS_PER_BATCH =bb" .Do not use this option in conjunction with the -h " ROWS_PER_BATCH =bb" option.

-c-c
Realiza la operación con un tipo de datos de caracteres.Performs the operation using a character data type. 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.This option does not prompt for each field; it uses char as the storage type, without prefixes and with \t (tab character) as the field separator and \r\n (newline character) as the row terminator. -c no es compatible con -w.-c is not compatible with -w.

Para obtener más información, vea Usar el formato de caracteres para importar o exportar datos (SQL Server).For more information, see Use Character Format to Import or Export Data (SQL Server).

-C { ACP | OEM | RAW | code_page } -C { ACP | OEM | RAW | code_page }
Especifica la página de códigos de los datos incluidos en el archivo de datos.Specifies the code page of the data in the data file. 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.code_page is relevant only if the data contains char, varchar, or text columns with character values greater than 127 or less than 32.

Nota

Se recomienda especificar un nombre de intercalación para cada columna en un archivo de formato, excepto cuando quiera que la opción 65001 tenga prioridad sobre la especificación de la página de códigos o la intercalación.We recommend specifying a collation name for each column in a format file, except when you want the 65001 option to have priority over the collation/code page specification.

Valor de página de códigosCode page value DescripciónDescription
ACPACP ANSIANSI/Microsoft Windows (ISO 1252)./Microsoft Windows (ISO 1252).
OEMOEM Página de códigos predeterminada, utilizada por el cliente.Default code page used by the client. Esta es la página de códigos que se usa de forma predeterminada si no se especifica -C .This is the default code page used if -C is not specified.
RAWRAW No se realiza ninguna conversión entre páginas de códigos.No conversion from one code page to another occurs. Se trata de la opción más rápida porque no se producen conversiones.This is the fastest option because no conversion occurs.
code_pagecode_page Número específico de una página de códigos, por ejemplo, 850.Specific code page number; for example, 850.

Las versiones anteriores a la versión 13 (SQL Server 2016 (13.x)SQL Server 2016 (13.x)) no admiten la página de códigos 65001 (codificación UTF-8).Versions prior to version 13 (SQL Server 2016 (13.x)SQL Server 2016 (13.x)) do not support code page 65001 (UTF-8 encoding). Las versiones a partir de la versión 13 pueden importar codificación UTF-8 a versiones anteriores de SQL ServerSQL Server.Versions beginning with 13 can import UTF-8 encoding to earlier versions of SQL ServerSQL Server.

-d database_name -d database_name
Especifica la base de datos a la que conectarse.Specifies the database to connect to. De forma predeterminada, bcp.exe se conecta a la base de datos predeterminada del usuario.By default, bcp.exe connects to the user's default database. Si se especifica -d nombre_basededatos y un nombre de tres partes (nombre_basededatos.schema.table, passed as the first parameter to bcp.exe) is specified, an error will occur because you cannot specify the database name twice.Si se especifica nombre_basededatos comienza por un guion (-) o una barra diagonal (/), no agregue un espacio entre -d y el nombre de la base de datos.If -d database_name and a three part name (database_name.schema.table, passed as the first parameter to bcp.exe) is specified, an error will occur because you cannot specify the database name twice.If database_name begins with a hyphen (-) or a forward slash (/), do not add a space between -d and the database name.

-e err_file-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.Specifies the full path of an error file used to store any rows that the bcp utility cannot transfer from the file to the database. Los mensajes de error del comando bcp van a la estación de trabajo del usuario.Error messages from the bcp command go to the workstation of the user. Si no se usa esta opción, no se creará el archivo de errores.If this option is not used, an error file is not created.

Si err_file comienza con un guión (-) o una barra diagonal (/), no incluya un espacio entre -e y el valor de err_file .If err_file begins with a hyphen (-) or a forward slash (/), do not include a space between -e and the err_file value.

-E -E
Especifica que se usará el valor o valores de identidad del archivo de datos importado para la columna de identidad.Specifies that identity value or values in the imported data file are to be used for the identity column. Si no se especifica -E , se omiten los valores de identidad de esta columna en el archivo de datos que se importa y SQL ServerSQL Server asigna automáticamente valores únicos basados en los valores de inicialización y de incremento especificados durante la creación de la tabla.If -E is not given, the identity values for this column in the data file being imported are ignored, and SQL ServerSQL Server automatically assigns unique values based on the seed and increment values specified during table creation.

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 ServerSQL Server asigna automáticamente valores únicos para la columna.If the data file does not contain values for the identity column in the table or view, use a format file to specify that the identity column in the table or view should be skipped when importing data; SQL ServerSQL Server automatically assigns unique values for the column. Para obtener más información, vea DBCC CHECKIDENT (Transact-SQL).For more information, see DBCC CHECKIDENT (Transact-SQL).

La opción -E tiene un requisito de permisos especial.The -E option has a special permissions requirement. Para más información, consulte la sección "Comentarios" que aparece más adelante en este tema.For more information, see "Remarks" later in this topic.

-f format_file-f format_file
Especifica la ruta de acceso completa de un archivo de formato.Specifies the full path of a format file. El significado de esta opción depende del entorno en el que se utiliza, como se indica a continuación:The meaning of this option depends on the environment in which it is used, as follows:

  • Si se usa -f con la opción format , se crea el archivo format_file especificado para la tabla o la vista especificada.If -f is used with the format option, the specified format_file is created for the specified table or view. Para crear un archivo de formato XML, especifique también la opción -x.To create an XML format file, also specify the -x option. Para obtener más información, vea Crear un archivo de formato (SQL Server).For more information, see Create a Format File (SQL Server).

  • Si se usa con las opciones in u out, -f requiere un archivo de formato existente.If used with the in or out option, -f requires an existing format file.

    Nota

    El uso de un archivo de formato con la opción in o out es opcional.Using a format file in with the in or out option is optional. En ausencia de la opción -f , si no se especifica -n, -c, -wo -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).In the absence of the -f option, if -n, -c, -w, or -N is not specified, the command prompts for format information and lets you save your responses in a format file (whose default file name is Bcp.fmt).

Si format_file comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -f y el valor de format_file .If format_file begins with a hyphen (-) or a forward slash (/), do not include a space between -f and the format_file value.

-F first_row-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.Specifies the number of the first row to export from a table or import from a data file. Este parámetro requiere un valor superior a (>) 0 pero inferior a (<) o igual que (=) el número total de filas.This parameter requires a value greater than (>) 0 but less than (<) or equal to (=) the total number rows. En ausencia de este parámetro, el valor predeterminado es la primera fila del archivo.In the absence of this parameter, the default is the first row of the file.

first_row puede ser un valor entero positivo hasta 2^63-1.first_row can be a positive integer with a value up to 2^63-1. -F first_row is 1-based.-F first_row is 1-based.

-G-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.This switch is used by the client when connecting to Azure SQL Database or Azure SQL Data Warehouse to specify that the user be authenticated using Azure Active Directory authentication. El modificador -G requiere versión 14.0.3008.27 o posterior.The -G switch requires version 14.0.3008.27 or later. Para determinar su versión, ejecute bcp -v.To determine your version, execute bcp -v. Para obtener más información, consulte Use autenticación Azure Active Directory para la autenticación con SQL Database o SQL Data Warehouse.For more information, see Use Azure Active Directory Authentication for authentication with SQL Database or 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.The -G option only applies to Azure SQL Database and Azure Data Warehouse. AAD integrada y la autenticación interactiva no se admite actualmente en Linux o macOS.AAD Integrated and Interactive Authentication is not currently supported on Linux or macOS.

Sugerencia

Para comprobar si su versión de bcp incluye compatibilidad para el tipo de autenticación Azure Active Directory (AAD) bcp-- (bcp<espacio ><dash ><dash >) y compruebe que ve - G en la lista de argumentos disponibles.To check if your version of bcp includes support for Azure Active Directory Authentication (AAD) type bcp -- (bcp<space><dash><dash>) and verify that you see -G in the list of available arguments.

  • Nombre de usuario y contraseña de Azure Active Directory:Azure Active Directory Username and Password:

    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 .When you want to use an Azure Active Directory user name and password, you can provide the -G option and also use the user name and password by providing the -U and -P options.

    El ejemplo siguiente exporta los datos con el nombre de usuario de Azure AD y la contraseña donde el usuario y la contraseña es una credencial de AAD.The following example exports data using Azure AD Username and Password where user and password is an AAD credential. En el ejemplo se exporta la tabla bcptest de base de datos testdb desde el servidor de Azure aadserver.database.windows.net y almacena los datos en el archivo c:\last\data1.dat:The example exports table bcptest from database testdb from Azure server aadserver.database.windows.net and stores the data in file c:\last\data1.dat:

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    

    El ejemplo siguiente importa datos con el nombre de usuario de Azure AD y la contraseña donde el usuario y la contraseña es una credencial de AAD.The following example imports data using Azure AD Username and Password where user and password is an AAD credential. El ejemplo importa los datos de archivo c:\last\data1.dat en tabla bcptest para base de datos testdb en servidor Azure aadserver.database.windows.net con Azure AD de usuario y contraseña:The example imports data from file c:\last\data1.dat into table bcptest for database testdb on Azure server aadserver.database.windows.net using Azure AD User/Password:

    bcp bcptest in "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com -P xxxxx
    
  • Autenticación integrada de Azure Active DirectoryAzure Active Directory Integrated

    Para autenticación integrada de Azure Active Directory, proporcione la opción -G sin un nombre de usuario o contraseña.For Azure Active Directory Integrated authentication, provide the -G option without a user name or password. Esta configuración se da por supuesto que la cuenta de usuario de Windows actual (es decir, la cuenta se está ejecutando el comando bcp bajo) está federada con Azure AD:This configuration assumes that the current Windows user account (the account the bcp command is running under) is federated with Azure AD:

    El ejemplo siguiente exporta datos mediante la cuenta integrada de Azure AD.The following example exports data using Azure AD Integrated account. En el ejemplo se exporta la tabla bcptest de base de datos testdb con Azure AD integrado desde el servidor de Azure aadserver.database.windows.net y almacena los datos en el archivo c:\last\data2.dat:The example exports table bcptest from database testdb using Azure AD Integrated from Azure server aadserver.database.windows.net and stores the data in file c:\last\data2.dat:

    bcp bcptest out "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    

    El ejemplo siguiente importa datos mediante la autenticación integrada de Azure AD El ejemplo importa los datos de archivo c:\last\data2.txt en tabla bcptest para base de datos testdb en servidor Azure aadserver.database.windows.net con la autenticación integrada de Azure AD:The following example imports data using Azure AD Integrated auth. The example imports data from file c:\last\data2.txt into table bcptest for database testdb on Azure server aadserver.database.windows.net using Azure AD Integrated auth:

    bcp bcptest in "c:\last\data2.dat" -S aadserver.database.windows.net -d testdb -G -c -t
    
  • Autenticación interactiva de Azure Active DirectoryAzure Active Directory Interactive

    La autenticación interactiva de Azure AD para Azure SQL Database y SQL Data Warehouse, permite usar un método interactivo que admiten la autenticación multifactor.The Azure AD Interactive authentication for Azure SQL Database and SQL Data Warehouse, allows you to use an interactive method supporting multi-factor authentication. Para obtener más información, consulte autenticación interactiva de Active Directory.For additional information, see Active Directory Interactive Authentication.

    Azure AD interactivo requiere bcp versión 15.0.1000.34 o posterior, así como ODBC versión 17.2 o posterior.Azure AD interactive requires bcp version 15.0.1000.34 or later as well as ODBC version 17.2 or later.

    Para habilitar la autenticación interactiva, proporcione la opción -G con el nombre de usuario (-U) solo, sin una contraseña.To enable interactive authentication, provide -G option with user name (-U) only, without a password.

    El ejemplo siguiente exporta los datos con el modo interactivo de Azure AD que indica el nombre de usuario donde el usuario representa una cuenta de AAD.The following example exports data using Azure AD interactive mode indicating username where user represents an AAD account. Este es el mismo ejemplo usado en la sección anterior: el nombre de usuario de Azure Active Directory y la contraseña.This is the same example used in the previous section: Azure Active Directory Username and Password.

    Modo interactivo requiere una contraseña para especificarse manualmente, o para las cuentas con autenticación multifactor habilitada, complete el método de autenticación de MFA configurado.Interactive mode requires a password to be manually entered, or for accounts with multi-factor authentication enabled, complete your configured MFA authentication method.

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U alice@aadtest.onmicrosoft.com 
    

    En caso de que un usuario de Azure AD es un dominio federado uno con la cuenta de Windows, el nombre de usuario necesario en la línea de comandos contiene su cuenta de dominio (por ejemplo, joe@contoso.com vea más abajo):In case an Azure AD user is a domain federated one using Windows account, the user name required in the command line, contains its domain account (for example, joe@contoso.com see below):

    bcp bcptest out "c:\last\data1.dat" -c -t -S aadserver.database.windows.net -d testdb -G -U joe@contoso.com 
    

    Si los usuarios invitados existen en una específica de Azure AD 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, sus alias de usuario invitado se utiliza (por ejemplo, *keith0@adventureworks.com*).If guest users exist in a specific Azure AD and are part of a group that exist in SQL DB that has database permissions to execute the bcp command, their guest user alias is used (for example, *keith0@adventureworks.com*).

-h "load hints[ ,... n]" Especifica las sugerencias que se deben usar durante una importación masiva de datos en una tabla o una vista.-h "load hints[ ,... n]" Specifies the hint or hints to be used during a bulk import of data into a table or view.

  • ORDER(column[ASC | DESC] [,...n])ORDER(column[ASC | DESC] [,...n])
    Indica el criterio de ordenación de los datos en el archivo de datos.The sort order of the data in the data file. El rendimiento de la importación masiva mejora si los datos importados se ordenan según el índice clúster de la tabla, si lo hay.Bulk import performance is improved if the data being imported is sorted according to the clustered index on the table, if any. 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.If the data file is sorted in a different order, that is other than the order of a clustered index key, or if there is no clustered index on the table, the ORDER clause is ignored. Los nombres de columna facilitados deben ser nombres válidos en la tabla de destino.The column names supplied must be valid column names in the destination table. De forma predeterminada, bcp supone que el archivo de datos no está ordenado.By default, bcp assumes the data file is unordered. En las importaciones masivas optimizadas, SQL ServerSQL Server también valida que los datos importados estén ordenados.For optimized bulk import, SQL ServerSQL Server also validates that the imported data is sorted.

  • ROWS_PER_BATCH = bbROWS_PER_BATCH = bb
    Número de filas de datos por lote (como bb).Number of rows of data per batch (as 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.Used when -b is not specified, resulting in the entire data file being sent to the server as a single transaction. El servidor optimiza la carga masiva según el valor bb.The server optimizes the bulk load according to the value bb. De forma predeterminada, el valor de ROWS_PER_BATCH es desconocido.By default, ROWS_PER_BATCH is unknown.

  • KILOBYTES_PER_BATCH = ccKILOBYTES_PER_BATCH = cc
    Número aproximado de kilobytes (KB) de datos por lote (igual que cc).Approximate number of kilobytes of data per batch (as cc). De forma predeterminada, el valor de KILOBYTES_PER_BATCH es desconocido.By default, KILOBYTES_PER_BATCH is unknown.

  • TABLOCKTABLOCK
    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.Specifies that a bulk update table-level lock is acquired for the duration of the bulk load operation; otherwise, a row-level lock is acquired. 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.This hint significantly improves performance because holding a lock for the duration of the bulk-copy operation reduces lock contention on the table. Varios clientes pueden cargar una tabla simultáneamente si esta no tiene índices y se especifica TABLOCK .A table can be loaded concurrently by multiple clients if the table has no indexes and TABLOCK is specified. De forma predeterminada, el comportamiento del bloqueo viene determinado por la opción de tabla table lock on bulk load.By default, locking behavior is determined by the table option table lock on bulk load.

    Nota

    Si la tabla de destino es el índice columnstore agrupado, la sugerencia TABLOCK no es necesaria para cargar mediante varios clientes simultáneos porque cada subproceso simultáneo se asigna a un grupo de filas independiente en el índice y en los datos de cargas.If the target table is clustered columnstore index, TABLOCK hint is not required for loading by multiple concurrent clients because each concurrent thread is assigned a separate rowgroup within the index and loads data into it. Para más detalles, consulte los temas conceptuales del índice de almacén de columnas.Please refer to columnstore index conceptual topics for details,

    CHECK_CONSTRAINTSCHECK_CONSTRAINTS
    Especifica que deben comprobarse todas las restricciones de la tabla o vista de destino durante la operación de importación masiva.Specifies that all constraints on the target table or view must be checked during the bulk-import operation. 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.Without the CHECK_CONSTRAINTS hint, any CHECK and FOREIGN KEY constraints are ignored, and after the operation the constraint on the table is marked as not-trusted.

    Nota

    Las restricciones UNIQUE, PRIMARY KEY y NOT NULL se aplican siempre.UNIQUE, PRIMARY KEY, and NOT NULL constraints are always enforced.

    En algún momento deberá comprobar las restricciones de toda la tabla.At some point, you will need to check the constraints on the entire table. 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.If the table was nonempty before the bulk import operation, the cost of revalidating the constraint may exceed the cost of applying CHECK constraints to the incremental data. Por lo tanto, se recomienda que se habilite normalmente la comprobación de restricciones durante una importación incremental masiva.Therefore, we recommend that normally you enable constraint checking during an incremental bulk import.

    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.A situation in which you might want constraints disabled (the default behavior) is if the input data contains rows that violate constraints. Con las restricciones CHECK deshabilitadas, puede importar los datos y después usar instrucciones de Transact-SQLTransact-SQL para quitar los datos que no son válidos.With CHECK constraints disabled, you can import the data and then use Transact-SQLTransact-SQL statements to remove data that is not valid.

    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.bcp now enforces data validation and data checks that might cause scripts to fail if they are executed on invalid data in a data file.

    Nota

    El modificador -m max_errors no es válido en la comprobación de restricciones.The -m max_errors switch does not apply to constraint checking.

  • FIRE_TRIGGERSFIRE_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.Specified with the in argument, any insert triggers defined on the destination table will run during the bulk-copy operation. Si no se especifica FIRE_TRIGGERS, no se ejecutará ningún desencadenador.If FIRE_TRIGGERS is not specified, no insert triggers will run. FIRE_TRIGGERS se ignora para los argumentos out, queryouty format .FIRE_TRIGGERS is ignored for the out, queryout, and format arguments.

-i input_file-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 ).Specifies the name of a response file, containing the responses to the command prompt questions for each data field when a bulk copy is being performed using interactive mode (-n, -c, -w, or -N not specified).

Si input_file comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -i y el valor de input_file .If input_file begins with a hyphen (-) or a forward slash (/), do not include a space between -i and the input_file value.

-k-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.Specifies that empty columns should retain a null value during the operation, rather than have any default values for the columns inserted. Para obtener más información, vea Mantener valores NULL o usar valores predeterminados durante la importación en bloque (SQL Server).For more information, see Keep Nulls or Use Default Values During Bulk Import (SQL Server).

-K application_intent -K application_intent
Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor.Declares the application workload type when connecting to a server. El único valor que es posible es ReadOnly.The only value that is possible is ReadOnly. Si no se especifica -K, la utilidad bcp no admitirá la conectividad con una réplica secundaria en el grupo de disponibilidad AlwaysOn.If -K is not specified, the bcp utility will not support connectivity to a secondary replica in an Always On availability group. Para obtener más información, vea Secundarias activas: réplicas secundarias legibles (Grupos de disponibilidad AlwaysOn).For more information, see Active Secondaries: Readable Secondary Replicas (Always On Availability Groups).

-L last_row-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.Specifies the number of the last row to export from a table or import from a data file. Este parámetro requiere un valor superior a (>) 0 pero inferior a (<) o igual al (=) el número de la última fila.This parameter requires a value greater than (>) 0 but less than (<) or equal to (=) the number of the last row. En ausencia de este parámetro, el valor predeterminado es la última fila del archivo.In the absence of this parameter, the default is the last row of the file.

last_row puede ser un valor entero positivo hasta 2^63-1.last_row can be a positive integer with a value up to 2^63-1.

-m max_errors-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 .Specifies the maximum number of syntax errors that can occur before the bcp operation is canceled. Un error de sintaxis implica un error de conversión de datos en el tipo de datos de destino.A syntax error implies a data conversion error to the target data type. El total de max_errors excluye cualquier error que pueda detectarse solamente en el servidor, como las infracciones de restricciones.The max_errors total excludes any errors that can be detected only at the server, such as constraint violations.

Una fila que no puede copiarse con la utilidad bcp se omite y se cuenta como un error.A row that cannot be copied by the bcp utility is ignored and is counted as one error. Si no se incluye esta opción, el valor predeterminado es 10.If this option is not included, the default is 10.

Nota

Además, la opción -m no es válida en la conversión de tipos de datos money o bigint .The -m option also does not apply to converting the money or bigint data types.

-n-n
Realiza la operación de copia masiva con los tipos de datos nativos (base de datos) de los datos.Performs the bulk-copy operation using the native (database) data types of the data. Esta opción no efectúa una petición para cada campo, sino que usa los valores nativos.This option does not prompt for each field; it uses the native values.

Para obtener más información, vea Usar el formato nativo para importar o exportar datos (SQL Server).For more information, see Use Native Format to Import or Export Data (SQL Server).

-N-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.Performs the bulk-copy operation using the native (database) data types of the data for noncharacter data, and Unicode characters for character data. 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 ServerSQL Server a otra mediante un archivo de datos.This option offers a higher performance alternative to the -w option, and is intended for transferring data from one instance of SQL ServerSQL Server to another using a data file. No realiza una petición para cada campo.It does not prompt for each field. Utilice esta opción cuando vaya a transferir datos que contengan caracteres extendidos ANSI y desee aprovechar el rendimiento del modo nativo.Use this option when you are transferring data that contains ANSI extended characters and you want to take advantage of the performance of native mode.

Para obtener más información, vea Usar el formato nativo Unicode para importar o exportar datos (SQL Server).For more information, see Use Unicode Native Format to Import or Export Data (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)).If you export and then import data to the same table schema by using bcp.exe with -N, you might see a truncation warning if there is a fixed length, non-Unicode character column (for example, char(10)).

La advertencia puede omitirse.The warning can be ignored. Una manera de resolver esta advertencia es usar -n en lugar de -N.One way to resolve this warning is to use -n instead of -N.

-o output_file-o output_file
Especifica el nombre de un archivo que recibe la salida redirigida desde el símbolo del sistema.Specifies the name of a file that receives output redirected from the command prompt.

Si output_file comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -o y el valor de output_file .If output_file begins with a hyphen (-) or a forward slash (/), do not include a space between -o and the output_file value.

-P password-P password
Especifica la contraseña para el identificador de inicio de sesión.Specifies the password for the login ID. Si no se usa esta opción, el comando bcp solicitará una contraseña.If this option is not used, the bcp command prompts for a password. 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).If this option is used at the end of the command prompt without a password, bcp uses the default password (NULL).

Importante

No utilice una contraseña en blanco.Do not use a blank password. Utilice una contraseña segura.Use a strong password.

Para enmascarar la contraseña, no especifique la opción -P junto con la opción -U .To mask your password, do not specify the -P option along with the -U option. En su lugar, después de especificar bcp junto con la opción -U y otros modificadores (sin especificar -P), pulse ENTRAR y el comando le solicitará una contraseña.Instead, after specifying bcp along with the -U option and other switches (do not specify -P), press ENTER, and the command will prompt you for a password. Este método garantiza que la contraseña se enmascare al especificarla.This method ensures that your password will be masked when it is entered.

Si password comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -P y el valor de password .If password begins with a hyphen (-) or a forward slash (/), do not add a space between -P and the password value.

-q-q
Ejecuta la instrucción SET QUOTED_IDENTIFIERS ON en la conexión entre la utilidad bcp y una instancia de SQL ServerSQL Server.Executes the SET QUOTED_IDENTIFIERS ON statement in the connection between the bcp utility and an instance of SQL ServerSQL 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.Use this option to specify a database, owner, table, or view name that contains a space or a single quotation mark. Englobe la totalidad del nombre de tres partes de la vista o tabla entre comillas (" ").Enclose the entire three-part table or view name in quotation marks ("").

Para especificar un nombre de base de datos que contenga un espacio o una comilla simple, debe usar la opción -q.To specify a database name that contains a space or single quotation mark, you must use the -q option.

-q no es válido para los valores que se pasan a -d.-q does not apply to values passed to -d.

Para más información, consulte la sección Comentariosque aparece más adelante en este tema.For more information, see Remarks, later in this topic.

-r fila_término-r row_term
Especifica el terminador de la fila.Specifies the row terminator. El valor predeterminado es \n (carácter de nueva línea).The default is \n (newline character). Use este parámetro para sustituir el terminador de fila predeterminado.Use this parameter to override the default row terminator. Para obtener más información, vea Especificar terminadores de campo y de fila (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).

Si especifica el terminador de fila en notación hexadecimal en un comando bcp.exe, el valor se truncará en 0x00.If you specify the row terminator in hexadecimal notation in a bcp.exe command, the value will be truncated at 0x00. Por ejemplo, si especifica 0x410041, se usará 0x41.For example, if you specify 0x410041, 0x41 will be used.

Si row_term comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -r y el valor de row_term .If row_term begins with a hyphen (-) or a forward slash (/), do not include a space between -r and the row_term value.

-R-R
Especifica que se realice la copia masiva de datos de moneda, fecha y hora en SQL ServerSQL Server con el formato regional definido para la configuración regional del equipo cliente.Specifies that currency, date, and time data is bulk copied into SQL ServerSQL Server using the regional format defined for the locale setting of the client computer. De forma predeterminada, la configuración regional se omite.By default, regional settings are ignored.

-S server_name [\instance_name] Especifica la instancia de SQL ServerSQL Server a la que se debe conectar.-S server_name [\instance_name] Specifies the instance of SQL ServerSQL Server to which to connect. Si no se especifica ningún servidor, la utilidad bcp se conecta a la instancia predeterminada de SQL ServerSQL Server en el equipo local.If no server is specified, the bcp utility connects to the default instance of SQL ServerSQL Server on the local computer. 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.This option is required when a bcp command is run from a remote computer on the network or a local named instance. Para establecer una conexión con la instancia predeterminada de SQL ServerSQL Server en un servidor, especifique únicamente server_name.To connect to the default instance of SQL ServerSQL Server on a server, specify only server_name. Para conectar con una instancia con nombre de SQL ServerSQL Server, especifique server_name\instance_name.To connect to a named instance of SQL ServerSQL Server, specify server_name\instance_name.

-t campo_término-t field_term
Especifica el terminador del campo.Specifies the field terminator. El valor predeterminado es \t (carácter de tabulación).The default is \t (tab character). Use este parámetro para invalidar el terminador de campo predeterminado.Use this parameter to override the default field terminator. Para obtener más información, vea Especificar terminadores de campo y de fila (SQL Server).For more information, see Specify Field and Row Terminators (SQL Server).

Si especifica el terminador de campo en notación hexadecimal en un comando bcp.exe, el valor se truncará en 0x00.If you specify the field terminator in hexadecimal notation in a bcp.exe command, the value will be truncated at 0x00. Por ejemplo, si especifica 0x410041, se usará 0x41.For example, if you specify 0x410041, 0x41 will be used.

Si field_term comienza por un guión (-) o una barra diagonal (/), no incluya un espacio entre -t y el valor de field_term .If field_term begins with a hyphen (-) or a forward slash (/), do not include a space between -t and the field_term value.

-T-T
Especifica que la utilidad bcp se conecta a SQL ServerSQL Server con una conexión de confianza utilizando la seguridad integrada.Specifies that the bcp utility connects to SQL ServerSQL Server with a trusted connection using integrated security. No es necesario usar las credenciales de seguridad del usuario de la red, login_idy password .The security credentials of the network user, login_id, and password are not required. Si no se especifica -T , es necesario especificar -U y -P para iniciar sesión correctamente.If -T is not specified, you need to specify -U and -P to successfully log in.

Importante

Si la utilidad bcp se conecta a SQL ServerSQL 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 .When the bcp utility is connecting to SQL ServerSQL Server with a trusted connection using integrated security, use the -T option (trusted connection) instead of the user name and password combination. 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.When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not supported. Use las opciones -U y -P .Use the -U and -P options.

-U login_id-U login_id
Especifica el identificador de inicio de sesión para conectar con SQL ServerSQL Server.Specifies the login ID used to connect to SQL ServerSQL Server.

Importante

Si la utilidad bcp se conecta a SQL ServerSQL 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 .When the bcp utility is connecting to SQL ServerSQL Server with a trusted connection using integrated security, use the -T option (trusted connection) instead of the user name and password combination. 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.When the bcp utility is connecting to SQL Database or SQL Data Warehouse, using Windows authentication or Azure Active Directory authentication is not supported. Use las opciones -U y -P .Use the -U and -P options.

-v-v
Informa del número de versión y los derechos de autor de la utilidad bcp .Reports the bcp utility version number and copyright.

-V (80 | 90 | 100 | 110 | 120 | 130 )-V (80 | 90 | 100 | 110 | 120 | 130 )
Realiza la operación de copia masiva con tipos de datos de versiones anteriores de SQL ServerSQL Server.Performs the bulk-copy operation using data types from an earlier version of SQL ServerSQL Server. Esta opción no realiza una petición para cada campo, sino que utiliza los valores predeterminados.This option does not prompt for each field; it uses the default values.

80 = SQL Server 2000 (8.x)SQL Server 2000 (8.x)80 = SQL Server 2000 (8.x)SQL Server 2000 (8.x)

90 = SQL Server 2005 (9.x)SQL Server 2005 (9.x)90 = SQL Server 2005 (9.x)SQL Server 2005 (9.x)

100 = SQL Server 2008SQL Server 2008 y SQL Server 2008 R2SQL Server 2008 R2100 = SQL Server 2008SQL Server 2008 and SQL Server 2008 R2SQL Server 2008 R2

110 = SQL Server 2012 (11.x)SQL Server 2012 (11.x)110 = SQL Server 2012 (11.x)SQL Server 2012 (11.x)

120 = SQL Server 2014 (12.x)SQL Server 2014 (12.x)120 = SQL Server 2014 (12.x)SQL Server 2014 (12.x)

130 = SQL Server 2016 (13.x)SQL Server 2016 (13.x)130 = SQL Server 2016 (13.x)SQL Server 2016 (13.x)

Por ejemplo, para generar datos de tipos no compatibles con SQL Server 2000 (8.x)SQL Server 2000 (8.x), pero que se introdujeron en versiones posteriores de SQL ServerSQL Server, use la opción -V80.For example, to generate data for types not supported by SQL Server 2000 (8.x)SQL Server 2000 (8.x), but were introduced in later versions of SQL ServerSQL Server, use the -V80 option.

Para obtener más información, vea Importar datos con formato nativo y de caracteres de versiones anteriores de SQL Server.For more information, see Import Native and Character Format Data from Earlier Versions of SQL Server.

-w-w
Realiza la operación de copia masiva con caracteres Unicode.Performs the bulk copy operation using Unicode characters. 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.This option does not prompt for each field; it uses nchar as the storage type, no prefixes, \t (tab character) as the field separator, and \n (newline character) as the row terminator. -w no es compatible con -c.-w is not compatible with -c.

Para obtener más información, vea Usar el formato de caracteres Unicode para importar o exportar datos (SQL Server).For more information, see Use Unicode Character Format to Import or Export Data (SQL Server).

-x-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.Used with the format and -f format_file options, generates an XML-based format file instead of the default non-XML format file. -x no funciona cuando se importan o exportan datos.The -x does not work when importing or exporting data. Genera un error si se usa sin format ni -f format_file.It generates an error if used without both format and -f format_file.

ComentariosRemarks

La utilidad bcp 13.0 se instala al instalar las herramientas de MicrosoftMicrosoftSQL Server 2017SQL Server 2017 .The bcp 13.0 client is installed when you install MicrosoftMicrosoftSQL Server 2017SQL Server 2017 tools. Si hay instaladas herramientas para SQL Server 2017SQL Server 2017 y para una versión anterior de SQL ServerSQL 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.If tools are installed for both SQL Server 2017SQL Server 2017 and an earlier version of SQL ServerSQL Server, depending on the order of values of the PATH environment variable, you might be using the earlier bcp client instead of the bcp 13.0 client. Esta variable de entorno define el conjunto de directorios que Windows usa para buscar archivos ejecutables.This environment variable defines the set of directories used by Windows to search for executable files. Para saber qué versión está usando, ejecute el comando bcp /v en el símbolo del sistema de Windows.To discover which version you are using, run the bcp /v command at the Windows Command Prompt. Para obtener información acerca del establecimiento de la ruta de comandos en la variable de entorno PATH, vea la Ayuda de Windows.For information about how to set the command path in the PATH environment variable, see Windows Help.

La utilidad bcp también se puede descargar por separado desde el Feature Pack de Microsoft SQL Server 2016.The bcp utility can also be downloaded separately from the Microsoft SQL Server 2016 Feature Pack. Seleccione ENU\x64\MsSqlCmdLnUtils.msi o ENU\x86\MsSqlCmdLnUtils.msi.Select either ENU\x64\MsSqlCmdLnUtils.msi or ENU\x86\MsSqlCmdLnUtils.msi.

Los archivos con formato XML solamente se admiten cuando se instalan herramientas de SQL ServerSQL Server con SQL ServerSQL Server Native Client.XML format files are only supported when SQL ServerSQL Server tools are installed together with SQL ServerSQL 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).For information about where to find or how to run the bcp utility and about the command prompt utilities syntax conventions, see Command Prompt Utility Reference (Database Engine).

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).For information on preparing data for bulk import or export operations, see Prepare Data for Bulk Export or Import (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.For information about when row-insert operations that are performed by bulk import are logged in the transaction log, see Prerequisites for Minimal Logging in Bulk Import.

Compatibilidad de los archivos de datos nativosNative Data File Support

En SQL Server 2017SQL Server 2017, la utilidad bcp admite archivos de datos nativos compatibles con SQL Server 2000 (8.x)SQL Server 2000 (8.x), SQL Server 2005 (9.x)SQL Server 2005 (9.x), SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2y SQL Server 2012 (11.x)SQL Server 2012 (11.x).In SQL Server 2017SQL Server 2017, the bcp utility supports native data files compatible with SQL Server 2000 (8.x)SQL Server 2000 (8.x), SQL Server 2005 (9.x)SQL Server 2005 (9.x), SQL Server 2008SQL Server 2008, SQL Server 2008 R2SQL Server 2008 R2, and SQL Server 2012 (11.x)SQL Server 2012 (11.x).

Columnas calculadas y columnas de marca de tiempoComputed Columns and timestamp Columns

Los valores del archivo de datos que se importan para las columnas calculadas o timestamp se omiten y SQL ServerSQL Server asigna valores automáticamente.Values in the data file being imported for computed or timestamp columns are ignored, and SQL ServerSQL Server automatically assigns values. 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 ServerSQL Server asigna valores para la columna automáticamente.If the data file does not contain values for the computed or timestamp columns in the table, use a format file to specify that the computed or timestamp columns in the table should be skipped when importing data; SQL ServerSQL Server automatically assigns values for the column.

Las columnas calculadas y timestamp se copian en bloque desde SQL ServerSQL Server en un archivo de datos de la forma habitual.Computed and timestamp columns are bulk copied from SQL ServerSQL Server to a data file as usual.

Especificar identificadores que incluyen espacios o comillasSpecifying Identifiers That Contain Spaces or Quotation Marks

SQL ServerSQL Server pueden incluir caracteres tales como espacios insertados y comillas.identifiers can include characters such as embedded spaces and quotation marks. Tales identificadores deben tratarse de la siguiente manera:Such identifiers must be treated as follows:

  • Cuando especifique un identificador o nombre de archivo que incluya un espacio o comillas en el símbolo del sistema, coloque el identificador entre comillas dobles (" ").When you specify an identifier or file name that includes a space or quotation mark at the command prompt, enclose the identifier in quotation marks ("").

    Por ejemplo, el siguiente comando bcp out crea un archivo de datos denominado Currency Types.dat:For example, the following bcp out command creates a data file named Currency Types.dat:

    bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c  
    
  • Para especificar un nombre de base de datos que contenga un espacio o comillas, hay que usar la opción -q .To specify a database name that contains a space or quotation mark, you must use the -q option.

  • Para los nombres de vista, tabla o propietario que contienen espacios insertados o comillas, puede hacer lo siguiente:For owner, table, or view names that contain embedded spaces or quotation marks, you can either:

    • Especificar la opción -q , o bienSpecify the -q option, or

    • Incluir el nombre de vista, tabla o propietario entre corchetes ([]) dentro de las comillas.Enclose the owner, table, or view name in brackets ([]) inside the quotation marks.

Validar datosData Validation

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.bcp now enforces data validation and data checks that might cause scripts to fail if they are executed on invalid data in a data file. Por ejemplo, bcp ahora comprueba que:For example, bcp now verifies that:

  • La representación nativa de los tipos de datos float o real es válida.The native representation of float or real data types are valid.

  • Los datos Unicode tienen una longitud de bytes uniforme.Unicode data has an even-byte length.

Es posible que los formularios de datos no válidos que podían importarse de forma masiva en versiones anteriores de SQL ServerSQL 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.Forms of invalid data that could be bulk imported in earlier versions of SQL ServerSQL Server might fail to load now; whereas, in earlier versions, the failure did not occur until a client tried to access the invalid data. La validación agregada evita sorpresas cuando se consultan los datos después de una carga masiva.The added validation minimizes surprises when querying the data after bulk load.

Exportación o importación masiva de documentos SQLXMLBulk Exporting or Importing SQLXML Documents

Para importar o exportar de forma masiva datos SQLXML, utilice uno de los tipos de datos siguientes en el archivo de formato.To bulk export or import SQLXML data, use one of the following data types in your format file.

Tipo de datosData type EfectoEffect
SQLCHAR o SQLVARYCHARSQLCHAR or SQLVARYCHAR Los datos se envían a la página de códigos del cliente o a la página de códigos implícita por la intercalación.The data is sent in the client code page or in the code page implied by the collation). Tiene el mismo efecto que especificar el modificador -c sin indicar un archivo de formato.The effect is the same as specifying the -c switch without specifying a format file.
SQLNCHAR o SQLNVARCHARSQLNCHAR or SQLNVARCHAR Los datos se envían como datos Unicode.The data is sent as Unicode. Tiene el mismo efecto que especificar el modificador -w sin indicar un archivo de formato.The effect is the same as specifying the -w switch without specifying a format file.
SQLBINARY o SQLVARYBINSQLBINARY or SQLVARYBIN Los datos se envían sin realizar ninguna conversión.The data is sent without any conversion.

PermisosPermissions

Una operación bcp out requiere permisos SELECT en la tabla de origen.A bcp out operation requires SELECT permission on the source table.

Una operación bcp in requiere como mínimo permisos SELECT/INSERT en la tabla de destino.A bcp in operation minimally requires SELECT/INSERT permissions on the target table. Además, se requiere el permiso ALTER TABLE si cualquiera de las siguientes afirmaciones es verdadera:In addition, ALTER TABLE permission is required if any of the following is true:

  • Existen restricciones y la sugerencia CHECK_CONSTRAINTS no se ha especificado.Constraints exist and the CHECK_CONSTRAINTS hint is not specified.

    Nota

    La deshabilitación de restricciones es el comportamiento predeterminado.Disabling constraints is the default behavior. Para habilitar las restricciones de forma explícita, use la opción -h con la sugerencia CHECK_CONSTRAINTS.To enable constraints explicitly, use the -h option with the CHECK_CONSTRAINTS hint.

  • Existen desencadenadores y la sugerencia FIRE_TRIGGER no se ha especificado.Triggers exist and the FIRE_TRIGGER hint is not specified.

    Nota

    De forma predeterminada, los desencadenadores no se activan.By default, triggers are not fired. Para activarlos de forma explícita, use la opción -h con la sugerencia FIRE_TRIGGERS.To fire triggers explicitly, use the -h option with the FIRE_TRIGGERS hint.

  • La opción -E se usa para importar valores de identidad de un archivo de datos.You use the -E option to import identity values from a data file.

Nota

El requisito del permiso ALTER TABLE en la tabla de destino era nuevo en SQL Server 2005 (9.x)SQL Server 2005 (9.x).Requiring ALTER TABLE permission on the target table was new in SQL Server 2005 (9.x)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.This new requirement might cause bcp scripts that do not enforce triggers and constraint checks to fail if the user account lacks ALTER table permissions for the target table.

Prácticas recomendadas para el modo de carácter (-c) y el modo nativo (-n)Character Mode (-c) and Native Mode (-n) Best Practices

Esta sección contiene recomendaciones para el modo de carácter (-c) y el modo nativo (-n).This section has recommendations for to character mode (-c) and native mode (-n).

  • (Administrador o usuario) Cuando sea posible, utilice el formato nativo (-n) para evitar problemas de separador.(Administrator/User) When possible, use native format (-n) to avoid the separator issue. Utilice el formato nativo para exportar e importar utilizando SQL ServerSQL Server.Use the native format to export and import using SQL ServerSQL Server. Exporte datos de SQL ServerSQL Server utilizando la opción -c o -w si los datos se van a importar a una base de datos que no es deSQL ServerSQL Server .Export data from SQL ServerSQL Server using the -c or -w option if the data will be imported to a non-SQL ServerSQL Server database.

  • (Administrador) Compruebe los datos al utilizar BCP OUT.(Administrator) Verify data when using 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.For example, when you use BCP OUT, BCP IN, and then BCP OUT verify that the data is properly exported and the terminator values are not used as part of some data value. 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.Please consider overriding the default terminators (using -t and -r options) with random hexadecimal values to avoid conflicts between terminator values and data values.

  • (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.(User) Use a long and unique terminator (any sequence of bytes or characters) to minimize the possibility of a conflict with the actual string value. Esto se puede realizar utilizando las opciones -t y -r.This can be done by using the -t and -r options.

EjemplosExamples

Esta sección contiene los siguientes ejemplos:This section contains the following examples:

  • A.A. Identificar la versión de la utilidad bcpIdentify bcp utility version

  • B.B. Copiar filas de tablas en un archivo de datos (con una conexión de confianza)Copying table rows into a data file (with a trusted connection)

  • C.C. Copiar filas de tablas en un archivo de datos (con autenticación de modo mixto)Copying table rows into a data file (with Mixed-mode Authentication)

  • D.D. Copiar datos de un archivo en una tablaCopying data from a file to a table

  • E.E. Copiar una columna específica en un archivo de datosCopying a specific column into a data file

  • F.F. Copiar una fila específica en un archivo de datosCopying a specific row into a data file

  • G.G. Copiar datos de una consulta en un archivo de datosCopying data from a query to a data file

  • H.H. Creación de archivos de formatoCreating format files

  • I.I. Usar un archivo de formato para importar de forma masiva con bcpUsing a format file to bulk import with bcp

Condiciones de prueba de ejemploExample Test Conditions

Los ejemplos siguientes usan la base de datos de ejemplo WideWorldImporters para SQL Server (desde 2016) y Azure SQL Database.The examples below make use of the WideWorldImporters sample database for SQL Server (starting 2016) and Azure SQL Database. WideWorldImporters se puede descargar desde https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world-importers-v1.0 .WideWorldImporters can be downloaded from 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.See RESTORE (Transact-SQL) for the syntax to restore the sample database. 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 .Except where specified otherwise, the examples assume that you are using Windows Authentication and have a trusted connection to the server instance on which you are running the bcp command. Muchos de los ejemplos usarán un directorio denominado D:\BCP .A directory named D:\BCP will be used in many of the examples.

El script siguiente crea una copia vacía de la tabla WideWorldImporters.Warehouse.StockItemTransactions y luego agrega una restricción PRIMARY KEY.The script below creates an empty copy of the WideWorldImporters.Warehouse.StockItemTransactions table and then adds a primary key constraint. Ejecute el siguiente script T-SQL en SQL Server Management Studio (SSMS)Run the following T-SQL script in SQL Server Management Studio (SSMS)

USE WideWorldImporters;  
GO  

SET NOCOUNT ON;

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Warehouse.StockItemTransactions_bcp')     
BEGIN
    SELECT * INTO WideWorldImporters.Warehouse.StockItemTransactions_bcp
    FROM WideWorldImporters.Warehouse.StockItemTransactions  
    WHERE 1 = 2;  

    ALTER TABLE Warehouse.StockItemTransactions_bcp 
    ADD CONSTRAINT PK_Warehouse_StockItemTransactions_bcp PRIMARY KEY NONCLUSTERED 
    (StockItemTransactionID ASC);
END

Nota

Trunque la tabla StockItemTransactions_bcp según sea necesario.Truncate the StockItemTransactions_bcp table as needed.

TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;TRUNCATE TABLE WideWorldImporters.Warehouse.StockItemTransactions_bcp;

A.A. Identificar la versión de la utilidad bcpIdentify bcp utility version

En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

bcp -v

B.B. Copiar filas de tablas en un archivo de datos (con una conexión de confianza)Copying table rows into a data file (with a trusted connection)

En el siguiente ejemplo se ilustra la opción out de la tabla WideWorldImporters.Warehouse.StockItemTransactions .The following examples illustrates the out option on the WideWorldImporters.Warehouse.StockItemTransactions table.

  • BasicBasic
    En este ejemplo se crea un archivo de datos con el nombre StockItemTransactions_character.bcp y se usa el formato de caracteres para copiar los datos de la tabla en ese archivo.This example creates a data file named StockItemTransactions_character.bcp and copies the table data into it using character format.

    En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -T
    
  • ExpandidoExpanded
    En este ejemplo se crea un archivo de datos con el nombre StockItemTransactions_native.bcp y se usa el formato nativo para copiar los datos de la tabla en ese archivo.This example creates a data file named StockItemTransactions_native.bcp and copies the table data into it using the native format. En el ejemplo también se especifica el número máximo de errores de sintaxis, un archivo de error y un archivo de salida.The example also: specifies the maximum number of syntax errors, an error file, and an output file.

    En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions OUT D:\BCP\StockItemTransactions_native.bcp -m 1 -n -e D:\BCP\Error_out.log -o D:\BCP\Output_out.log -S -T
    

Revise Error_out.log y Output_out.log.Review Error_out.log and Output_out.log. Error_out.log debe estar en blanco.Error_out.log should be blank. Compare los tamaños de archivo entre StockItemTransactions_character.bcp y StockItemTransactions_native.bcp.Compare the file sizes between StockItemTransactions_character.bcp and StockItemTransactions_native.bcp.

C.C. Copiar filas de tablas en un archivo de datos (con autenticación de modo mixto)Copying table rows into a data file (with mixed-mode authentication)

En el siguiente ejemplo se ilustra la opción out de la tabla WideWorldImporters.Warehouse.StockItemTransactions.The following example illustrates the out option on the WideWorldImporters.Warehouse.StockItemTransactions table. En este ejemplo se crea un archivo de datos con el nombre StockItemTransactions_character.bcp y se usa el formato de caracteres para copiar los datos de la tabla en ese archivo.This example creates a data file named StockItemTransactions_character.bcp and copies the table data into it using character format.

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.The example assumes that you are using mixed-mode authentication, you must use the -U switch to specify your login ID. Además, a menos que se esté conectando a la instancia predeterminada de SQL ServerSQL Server en el equipo local, use el modificador -S para especificar el nombre del sistema y, opcionalmente, un nombre de instancia.Also, unless you are connecting to the default instance of SQL ServerSQL Server on the local computer, use the -S switch to specify the system name and, optionally, an instance name.

En un símbolo del sistema, escriba el comando siguiente: (El sistema pedirá la contraseña.)At a command prompt, enter the following command: (The system will prompt you for your password.)

bcp WideWorldImporters.Warehouse.StockItemTransactions out D:\BCP\StockItemTransactions_character.bcp -c -U<login_id> -S<server_name\instance_name>

D.D. Copiar datos de un archivo en una tablaCopying data from a file to a table

Los ejemplos siguientes ilustran la opción in en la tabla WideWorldImporters.Warehouse.StockItemTransactions_bcp con los archivos que se crearon anteriormente.The following examples illustrate the in option on the WideWorldImporters.Warehouse.StockItemTransactions_bcp table using files created above.

  • BásicoBasic
    En este ejemplo se usa el archivo de datos StockItemTransactions_character.bcp que se creó anteriormente.This example uses the StockItemTransactions_character.bcp data file previously created.

    En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

    bcp WideWorldImporters.Warehouse.StockItemTransactions_bcp IN D:\BCP\StockItemTransactions_character.bcp -c -T  
    
  • ExpandidoExpanded
    En este ejemplo se usa el archivo de datos StockItemTransactions_native.bcp que se creó anteriormente.This example uses the StockItemTransactions_native.bcp data file previously created. En el ejemplo también se usa la sugerencia TABLOCK, se especifica el tamaño del lote, el número máximo de errores de sintaxis, un archivo de error y un archivo de salida.The example also: use the hint TABLOCK, specifies the batch size, the maximum number of syntax errors, an error file, and an output file.

    En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

    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 
    

    Revise Error_in.log y Output_in.log.Review Error_in.log and Output_in.log.

E.E. Copiar una columna específica en un archivo de datosCopying a specific column into a data file

Para copiar una columna específica, puede usar la opción queryout .To copy a specific column, you can use the queryout option. El siguiente ejemplo copia únicamente la columna StockItemTransactionID de la tabla Warehouse.StockItemTransactions en un archivo de datos.The following example copies only the StockItemTransactionID column of the Warehouse.StockItemTransactions table into a data file.

En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

bcp "SELECT StockItemTransactionID FROM WideWorldImporters.Warehouse.StockItemTransactions WITH (NOLOCK)" queryout D:\BCP\StockItemTransactionID_c.bcp -c -T

F.F. Copiar una fila específica en un archivo de datosCopying a specific row into a data file

Para copiar una fila específica, puede usar la opción queryout .To copy a specific row, you can use the queryout option. 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.The following example copies only the row for the person named Amy Trefl from the WideWorldImporters.Application.People table into a data file Amy_Trefl_c.bcp. Nota: El modificador -d se usa para identificar la base de datos.Note: the -d switch is used identify the database.

En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

bcp "SELECT * from Application.People WHERE FullName = 'Amy Trefl'" queryout D:\BCP\Amy_Trefl_c.bcp -d WideWorldImporters -c -T

G.G. Copiar datos de una consulta en un archivo de datosCopying data from a query to a data file

Para copiar el conjunto de resultados de una instrucción Transact-SQL en un archivo de datos, use la opción queryout .To copy the result set from a Transact-SQL statement to a data file, use the queryout option. El ejemplo siguiente copia los nombres de la tabla WideWorldImporters.Application.People, ordenados por nombre completo, en el archivo de datos People.txt.The following example copies the names from the WideWorldImporters.Application.People table, ordered by full name, into the People.txt data file. Nota: El modificador -t se usa para crear un archivo delimitado por comas.Note: the -t switch is used to create a comma delimited file.

En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

bcp "SELECT FullName, PreferredName FROM WideWorldImporters.Application.People ORDER BY FullName" queryout D:\BCP\People.txt -t, -c -T

H.H. Creación de archivos de formatoCreating format files

El ejemplo siguiente crea tres archivos de formato distintos para la tabla Warehouse.StockItemTransactions en la base de datos WideWorldImporters.The following example creates three different format files for the Warehouse.StockItemTransactions table in the WideWorldImporters database. Revise el contenido de cada archivo creado.Review the contents of each created file.

En un símbolo del sistema, escriba los comandos siguientes:At a command prompt, enter the following commands:

REM non-XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.fmt -c -T 

REM non-XML native format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_n.fmt -n -T

REM XML character format
bcp WideWorldImporters.Warehouse.StockItemTransactions format nul -f D:\BCP\StockItemTransactions_c.xml -x -c -T
 

Nota

Para usar el modificador -x , debe contar con un cliente bcp 9.0.To use the -x switch, you must be using a bcp 9.0 client. Para información sobre cómo usar el cliente bcp 9.0, consulte la sección "Comentarios".For information about how to use the bcp 9.0 client, see "Remarks."

Para más información, consulte Archivos de formato no XML (SQL Server) y Archivos de formato XML (SQL Server).For more information, see Non-XML Format Files (SQL Server) and XML Format Files (SQL Server).

I.I. Usar un archivo de formato para importar de forma masiva con bcpUsing a format file to bulk import with bcp

Para usar un archivo de formato creado anteriormente al importar datos a una instancia de SQL ServerSQL Server, use el modificador -f con la opción in .To use a previously created format file when importing data into an instance of SQL ServerSQL Server, use the -f switch with the in option. 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.For example, the following command bulk copies the contents of a data file, StockItemTransactions_character.bcp, into a copy of the Warehouse.StockItemTransactions_bcp table by using the previously created format file, StockItemTransactions_c.xml. Nota: El modificador -L se usa para importar únicamente los 100 primeros registros.Note: the -L switch is used to import only the first 100 records.

En el símbolo del sistema, escriba el siguiente comando:At a command prompt, enter the following command:

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.Format files are useful when the data file fields are different from the table columns; for example, in their number, ordering, or data types. Para obtener más información, vea Archivos de formato para importar o exportar datos (SQL Server).For more information, see Format Files for Importing or Exporting Data (SQL Server).

J.J. Especificar una página de códigosSpecifying a code page

En el siguiente ejemplo de código parcial se muestra la importación de bcp al especificar una página de código 65001:The following partial code example shows bcp import while specifying a code page 65001:

bcp.exe MyTable in "D:\data.csv" -T -c -C 65001 -t , ...  

En el siguiente ejemplo de código parcial se muestra la exportación de bcp al especificar una página de código 65001:The following partial code example shows bcp export while specifying a code page 65001:

bcp.exe MyTable out "D:\data.csv" -T -c -C 65001 -t , ...  

Otros ejemplosAdditional Examples

Los temas siguientes incluyen ejemplos de uso de bcp:The following topics contain examples of using bcp:
Formatos de datos para importación o exportación masivas (SQL Server)Data Formats for Bulk Import or Bulk Export (SQL Server)
 ● Usar el formato nativo para importar o exportar datos (SQL Server) ● Use Native Format to Import or Export Data (SQL Server)
 ● Usar el formato de caracteres para importar o exportar datos (SQL Server) ● Use Character Format to Import or Export Data (SQL Server)
 ● Usar el formato nativo Unicode para importar o exportar datos (SQL Server) ● Use Unicode Native Format to Import or Export Data (SQL Server)
 ● Usar el formato de caracteres Unicode para importar o exportar datos (SQL Server) ● Use Unicode Character Format to Import or Export Data (SQL Server)

Especificar terminadores de campo y de fila (SQL Server)Specify Field and Row Terminators (SQL Server)

Mantener valores NULL o usar valores predeterminados durante la importación masiva (SQL Server)Keep Nulls or Use Default Values During Bulk Import (SQL Server)

Mantener valores de identidad al importar datos de forma masiva (SQL Server)Keep Identity Values When Bulk Importing Data (SQL Server)

Archivos de formato para importar o exportar datos (SQL Server)Format Files for Importing or Exporting Data (SQL Server))
 ● Crear un archivo de formato (SQL Server) ● Create a Format File (SQL Server)
 ● Usar un archivo de formato para importar datos de forma masiva (SQL Server) ● Use a Format File to Bulk Import Data (SQL Server)
 ● Usar un archivo de formato para omitir una columna de tabla (SQL Server) ● Use a Format File to Skip a Table Column (SQL Server)
 ● Usar un archivo de formato para omitir un campo de datos (SQL Server) ● Use a Format File to Skip a Data Field (SQL Server)
 ● Usar un archivo de formato para asignar columnas de tabla a campos de un archivo de datos (SQL Server) ● Use a Format File to Map Table Columns to Data-File Fields (SQL Server)

Ejemplos de importación y exportación de forma masiva documentos XML (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)

Consulte tambiénSee Also

Preparar los datos para exportar o importar en bloque (SQL Server) Prepare Data for Bulk Export or Import (SQL Server)
BULK INSERT (Transact-SQL) BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL) SET QUOTED_IDENTIFIER (Transact-SQL)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
sp_tableoption (Transact-SQL) sp_tableoption (Transact-SQL)
Archivos de formato para importar o exportar datos (SQL Server)Format Files for Importing or Exporting Data (SQL Server)

ComentariosFeedback

needhelp_person_icon Foro de Herramientas de cliente de SQLneedhelp_person_icon SQL Client Tools Forum

info_tip Obtener ayudaGet Help