Parámetros y propiedades de Import de SqlPackage

La acción Import de SqlPackage importa los datos de esquemas y tablas de un paquete BACPAC (.bacpac) en una base de datos nueva o vacía en SQL Server o Azure SQL Database. En el momento de la operación de importación a una base de datos existente, la base de datos de destino no puede contener ningún objeto de esquema definido por el usuario. Como alternativa, se puede crear una base de datos con la acción de importación cuando el usuario autenticado tiene permisos para crear bases de datos. La acción Importar 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 importació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:Import {parameters} {properties}

Parámetros obligatorios

La acción Importar requiere un parámetro SourceFile para especificar el nombre y la ubicación del archivo .bacpac que contiene los objetos y los datos de la base de datos.

La acción Exportar requiere una conexión de destino donde SqlPackage creará una nueva base de datos o donde está presente una base de datos en blanco. Esto se especifica a través de una combinación de:

  • los parámetros TargetServerName y TargetDatabaseName, o
  • el parámetro TargetConnectionString.

Ejemplos

# example import to Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"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 import using short form parameter names
SqlPackage /a:Import /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
    /tp:"{your_password}" /sf:"C:\AdventureWorksLT.bacpac"

# example import using Microsoft Entra managed identity
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"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 import connecting using Microsoft Entra username and password
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"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 import connecting using Microsoft Entra universal authentication
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /TargetConnectionString:"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 Import

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: Importar 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.
/ModelFilePath: /mfp: {string} Especifica la ruta de acceso del archivo para invalidar model.xml en el archivo de origen. El uso de esta configuración puede provocar un error de implementación o una pérdida de datos no deseada. Esta configuración solo está pensada para solucionar problemas de publicación, importación o generación de scripts.
/Properties: /p: {PropertyName}={Value} Especifica un par de nombre y 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.
/SourceFile: /sf: {string} Especifica un archivo de origen que se usará como origen de la acción del almacén local. Si se usa este parámetro, el resto de parámetros de origen no serán válidos.
/TargetConnectionString: /tcs: {string} Especifica una cadena de conexión de SQL Server o SQL Azure válida para la base de datos de destino. Si se especifica este parámetro, lo usan exclusivamente los demás parámetros de destino.
/TargetDatabaseName: /tdn: {string} Especifica una invalidación del nombre de la base de datos que es el destino de la acción de SqlPackage.
/TargetEncryptConnection: /tec: {Optional|Mandatory|Strict|True|False} Especifica si se debe usar el cifrado de SQL para la conexión de base de datos de destino. El valor predeterminado es True.
/TargetHostNameInCertificate: /thnic: {string} Especifica el valor que se usará para validar el certificado de destino SSL o TLS de SQL Server cuando el nivel de comunicación se cifre mediante TLS.
/TargetPassword: /tp: {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 destino.
/TargetServerName: /tsn: {string} Define el nombre del servidor que hospeda la base de datos de destino.
/TargetTimeout: /tt: {int} Especifica el tiempo de espera para establecer una conexión con la base de datos de destino, en segundos. Para Microsoft Entra ID, se recomienda que este valor sea mayor o igual que 30 segundos.
/TargetTrustServerCertificate: /ttsc: {True|False} Especifica si se usará TLS para cifrar la conexión con la base de datos de destino y no tener que recorrer la cadena de certificados para validar la confianza. El valor predeterminado es False.
/TargetUser: /tu: {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 destino.
/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 inquilino predeterminado para Microsoft Entra ID, suponiendo que el usuario autenticado sea un usuario nativo para esta instancia de AD. 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 Import

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: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Define la edición de la instancia de Azure SQL Database. Vea Niveles de servicio de Azure SQL Database.
/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: DatabaseMaximumSize=(INT32 '0') Define el tamaño máximo en GB de una instancia de Azure SQL Database.
/p: DatabaseServiceObjective=(STRING) Define el nivel de rendimiento de una instancia de Azure SQL Database, como "P0" o "S1".
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') Cuando es true (valor predeterminado), deshabilita los índices antes de importar los datos. Cuando es false, los índices no se recompilan.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') No utilizar el paralelismo al reconstruir los índices durante la importación de datos en SQL Server.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Especifica si se deben reemplazar todos los nombres de objeto de los registros por un valor hash aleatorio.
/p: ImportContributorArguments=(STRING) Especifica los argumentos de colaborador de implementación para los colaboradores de implementación. Esta propiedad debe ser una lista de valores delimitada por punto y coma.
/p: ImportContributorPaths=(STRING) Especifica las rutas de acceso para cargar colaboradores de importación adicionales. Esta propiedad debe ser una lista de valores delimitada por punto y coma.
/p: ImportContributors=(STRING) Especifica los colaboradores de implementación que se deben ejecutar cuando se importa el dacpac. Esta propiedad debe ser una lista delimitada por punto y coma de nombres completos o identificadores de los colaboradores de compilació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: PreserveIdentityLastValues=(BOOLEAN 'False') Especifica si los últimos valores de las columnas de identidad deben conservarse durante la implementación.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Cuando es true, se recompilan los índices sin conexión después de importar datos a SQL Server.
/p: Storage=({File|Memory}) Especifica la forma en que se almacenan los elementos cuando se genera el modelo de base de datos. Por motivos de rendimiento, el valor predeterminado es InMemory. Cuando se trata de bases de datos grandes, se requiere almacenamiento respaldado por archivos.

Pasos siguientes