Parámetros y propiedades de Export de SqlPackage

La acción Export de SqlPackage exporta una base de datos conectada a un archivo BACPAC (.bacpac). De forma predeterminada, los datos de todas las tablas se incluirán en el archivo .bacpac. Si lo desea, puede especificar solo un subconjunto de las tablas para exportar los datos. La acción Exportar forma parte de la funcionalidad de portabilidad de la base de datos de SqlPackage.

Nota:

Aunque Microsoft Entra ID es el nuevo nombre de Azure Active Directory (Azure AD), para evitar interrumpir los entornos existentes, Azure AD sigue estando en algunos elementos codificados de forma rígida como campos de interfaz de usuario, proveedores de conexiones, códigos de error y cmdlets. En este artículo, los dos nombres son intercambiables.

Nota:

La exportación de SqlPackage funciona mejor para las bases de datos de menos de 200 GB. En el caso de bases de datos más grandes, es posible que quiera optimizar la operación mediante las propiedades disponibles en este artículo y las sugerencias descritas en Solución de problemas con SqlPackage. También puede conseguir la portabilidad de la base de datos a través de datos en archivos de Parquet.

Sintaxis de línea de comandos

SqlPackage inicia las acciones especificadas usando los parámetros, las propiedades y las variables de SQLCMD especificadas en la línea de comandos.

SqlPackage /Action:Export {parameters} {properties}

Parámetros obligatorios

La acción Exportar requiere un parámetro TargetFile para especificar el nombre y la ubicación del archivo .bacpac que se va a crear. El usuario debe escribir esta ubicación ejecutando el comando y debe existir la carpeta contenedora.

La acción Exportar también requiere que se especifique un origen de base de datos, ya sea mediante una combinación de:

  • los parámetros SourceServerName y SourceDatabaseName, o
  • el parámetro SourceConnectionString.

Ejemplos

# example export from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example export using short form parameter names, skips schema validation
SqlPackage /a:Export /ssn:"{yourserver}.database.windows.net,1433" /sdn:"AdventureWorksLT" /su:"sqladmin" \
    /sp:"{your_password}" /tf:"C:\AdventureWorksLT.bacpac" /p:VerifyExtraction=False

# example export using Microsoft Entra managed identity
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example export connecting using Microsoft Entra username and password
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example export connecting using Microsoft Entra universal authentication
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parámetros de la acción Export

Parámetro Forma corta Value Descripción
/AccessToken: /at: {string} Especifica el token de acceso de autenticación basada en tokens que se usará al conectarse a la base de datos de destino.
/Action: /a: Exportación Especifica la acción que se va a realizar.
/AzureCloudConfig: /acc: {string} Especifica los puntos de conexión personalizados para conectarse a Microsoft Entra ID en el formato "AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}".
/Diagnostics: /d: {True|False} Especifica si la salida del registro de diagnóstico es la consola. El valor predeterminado es False.
/ DiagnosticsFile: /df: {string} Especifica un archivo para almacenar los registros de diagnóstico.
/MaxParallelism: /mp: {int} Especifica el nivel de paralelismo para las operaciones simultáneas que se ejecutan en una base de datos. El valor predeterminado es 8.
/OverwriteFiles: /of: {True|False} Especifica si SqlPackage debe sobrescribir los archivos existentes. Si se especifica false, SqlPackage anula la acción si se encuentra un archivo existente. El valor predeterminado es True.
/Properties: /p: {PropertyName}={Value} Especifica un par nombre-valor para una propiedad específica de acción;{PropertyName}={Value}.
/Quiet: /q: {True|False} Especifica si se suprimen los comentarios detallados. El valor predeterminado es False.
/SourceConnectionString: /scs: {string} Especifica una cadena de conexión de SQL Server o SQL Azure válida para la base de datos de origen. Si se especifica este parámetro, lo usan exclusivamente los demás parámetros de origen.
/SourceDatabaseName: /sdn: {string} Define el nombre de la base de datos de origen.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Especifica si se debe usar cifrado SQL para la conexión de base de datos de origen. El valor predeterminado es True.
/SourceHostNameInCertificate: /shnic: {string} Especifica el valor que se usará para validar el certificado de origen SSL o TLS de SQL Server cuando el nivel de comunicación se cifre mediante TLS.
/SourcePassword: /sp: {string} En escenarios de autenticación de SQL Server, define la palabra clave que se va a usar para acceder a la base de datos de origen.
/SourceServerName: /ssn: {string} Define el nombre del servidor que hospeda la base de datos de origen.
/SourceTimeout: /st: {int} Especifica el tiempo de espera para establecer una conexión con la base de datos de origen, en segundos.
/SourceTrustServerCertificate: /stsc: {True|False} Especifica si se usará TLS para cifrar la conexión con la base de datos de origen y no tener que recorrer la cadena de certificados para validar la confianza. El valor predeterminado es False.
/SourceUser: /su: {string} En escenarios de autenticación de SQL Server, define el usuario de SQL Server que se va a usar para acceder a la base de datos de origen.
/TargetFile: /tf: {string} Especifica un archivo de destino (es decir, un archivo. dacpac) que se va a usar como destino de la acción en lugar de una base de datos. Si se usa este parámetro, el resto de parámetros de destino no serán válidos. Este parámetro no será válido para acciones que solo admitan destinos de base de datos.
/TenantId: /tid: {string} Representa el identificador de suscriptor de Microsoft Entra o el nombre de dominio. Esta opción se requiere para admitir usuarios de Microsoft Entra invitados o importados, así como cuentas Microsoft (MSA) como outlook.com, hotmail.com o live.com. Si se omite este parámetro, se usará el identificador de suscriptor predeterminado para Microsoft Entra ID, suponiendo que el usuario autenticado sea un usuario nativo para este suscriptor. Sin embargo, en este caso no se admiten usuarios invitados o importados ni cuentas de Microsoft hospedadas en este Microsoft Entra ID y se producirá un error en la operación.
Para más información, consulte Autenticación universal con SQL Database y Azure Synapse Analytics (compatibilidad de SSMS con MFA).
/ThreadMaxStackSize: /tmss: {int} Especifica el tamaño máximo en megabytes para el subproceso que ejecuta la acción SqlPackage. Esta opción solo debe usarse al encontrar excepciones de desbordamiento de pila que se producen al analizar instrucciones de Transact-SQL muy grandes.
/UniversalAuthentication: /ua: {True|False} Especifica si se debe usar la autenticación universal. Cuando se establece en true, el protocolo de autenticación interactiva se activa y admite MFA. Esta opción también se puede usar para la autenticación de Microsoft Entra sin MFA, mediante un protocolo interactivo que requiere que el usuario escriba su nombre de usuario y contraseña o autenticación integrada (credenciales de Windows). Cuando /UniversalAuthentication se establece en True, no se puede especificar ninguna autenticación de Microsoft Entra en SourceConnectionString (/scs). Cuando /UniversalAuthentication se establece en False, se debe especificar la autenticación de Microsoft Entra en SourceConnectionString (/scs).
Para más información, consulte Autenticación universal con SQL Database y Azure Synapse Analytics (compatibilidad de SSMS con MFA).

Propiedades específicas de la acción Export

Propiedad Valor Descripción
/p: CommandTimeout=(INT32 '60') Especifica el tiempo de espera de comando en segundos cuando se ejecutan consultas en SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Especifica el tipo de compresión.
/p: DatabaseLockTimeout=(INT32 '60') Especifica el tiempo de expiración de bloqueo de la base de datos en segundos al ejecutar consultas en SQLServer. Use -1 para esperar indefinidamente.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Especifica si se deben reemplazar todos los nombres de objeto de los registros por un valor hash aleatorio.
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Especifica si se deben omitir los índices o las estadísticas de las columnas cifradas mediante cifrado aleatorio y claves de cifrado de columna habilitadas para enclave (no se incluyen en el bacpac generado). De forma predeterminada (false), cualquier índice o estadística de una columna cifrada mediante cifrado aleatorio y una clave de cifrado de columna habilitada para enclave bloqueará la acción de exportación.
/p: LongRunningCommandTimeout=(INT32 '0') Especifica el tiempo de espera del comando de larga duración en segundos al ejecutar consultas en SQL Server. Use 0 para esperar indefinidamente.
/p: Storage=({File|Memory}) Especifica el tipo de almacenamiento de seguridad para el modelo de esquema que se usa durante la extracción. "Memory" es el valor predeterminado en la versión .NET Core de SqlPackage. "File" solo está disponible y es el valor predeterminado en la versión .NET Framework de SqlPackage.
/p: TableData=(STRING) Indica la tabla de la que se extraerán los datos. Especifique el nombre de tabla con o sin corchetes en ambas partes del nombre en el siguiente formato: nombre_esquema.identificador_tabla. Esta propiedad se puede especificar varias veces para indicar diversas opciones.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Esta propiedad está en desuso y no se recomienda su uso. Especifica la versión que se espera que sea el motor de destino de Azure SQL Database.
/p: TempDirectoryForTableData=(STRING) Especifica un directorio temporal alternativo que se usará para almacenar en búfer los datos de la tabla antes de escribirlos en el archivo de paquete. El espacio necesario en esta ubicación puede ser grande y depende del tamaño completo de la base de datos.
/p: VerifyExtraction=(BOOLEAN 'True') Especifica si debe comprobarse el modelo de esquema extraído. Si se establece en true, las reglas de validación de esquema se ejecutan en dacpac o bacpac.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Especifica si los tipos de documentos de texto completo admitidos para Microsoft Azure SQL Database v12 deben comprobarse.

Pasos siguientes