Paramètres et propriétés de l’action Import de SqlPackage

L’action Import de SqlPackage importe le schéma et les données de table d’un fichier BACPAC (.bacpac) dans une base de données nouvelle ou vide dans SQL Server ou Azure SQL Database. Au moment de l’opération d’importation dans une base de données existante, la base de données cible ne peut pas contenir d’objets de schéma définis par l’utilisateur. Une nouvelle base de données peut également être créée par l’action d’importation lorsque l’utilisateur authentifié dispose des autorisations de création de base de données. L’action Importer fait partie de la fonctionnalité de portabilité de base de données de SqlPackage.

Remarque

Bien que Microsoft Entra ID soit le nouveau nom d’Azure Active Directory (Azure AD) pour empêcher l’interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d’interface utilisateur, les fournisseurs de connexions, les codes d’erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.

Remarque

L’importation SqlPackage donne les meilleurs résultats avec les bases de données de moins de 200 Go. Pour les bases de données plus importantes, vous pouvez optimiser l’opération en recourant aux propriétés disponibles dans cet article et aux conseils dans Résolution des problèmes avec SqlPackage ou atteindre la portabilité de la base de données par le biais des données dans les fichiers de parquet.

Syntaxe de ligne de commande

SqlPackage lance les actions spécifiées en utilisant les paramètres, propriétés et variables SQLCMD spécifiés sur la ligne de commande.

SqlPackage /Action:Import {parameters} {properties}

Paramètres obligatoires

L’action Importer nécessite un paramètre SourceFile pour spécifier le nom et l’emplacement du fichier .bacpac contenant les objets et données de base de données.

L’action Exporter nécessite une connexion cible où une nouvelle base de données sera créée par SqlPackage ou où une base de données vide est présente. Ceci est spécifié par le biais d’une combinaison de :

  • Paramètres TargetServerName et TargetDatabaseName, ou
  • TargetConnectionString, paramètre.

Exemples

# 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;"

Paramètres de l’action Import

Paramètre Forme abrégée Valeur Description
/AccessToken: /at: {string} Dans le cadre de l’authentification par jeton, spécifie le jeton d’accès à utiliser pour se connecter à la base de données cible.
/Action: /a: Importer Indique l’action à effectuer.
/AzureCloudConfig: /acc: {string} Spécifie les points de terminaison personnalisés pour la connexion à Microsoft Entra ID au format AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}".
/Diagnostics: /d: {True|False} Spécifie si la journalisation des diagnostics est affichée dans la console. Valeur par défaut False.
/DiagnosticsFile : /df: {string} Spécifie un fichier où stocker les journaux de diagnostic.
/MaxParallelism: /mp: {int} Spécifie le degré de parallélisme d’opérations simultanées sur une base de données. La valeur par défaut est 8.
/ModelFilePath: /mfp: {string} Spécifie le chemin d’accès du fichier pour remplacer le model.xml dans le fichier source. L’utilisation de ce paramètre peut entraîner une défaillance du déploiement et/ou une perte de données involontaire. Ce paramètre est destiné uniquement à une utilisation lors de la résolution de problèmes liés à la publication, l’importation ou la génération de scripts.
/Properties: /p: {PropertyName}={Value} Spécifie une paire nom-valeur pour une propriété spécifique à l’action ; {PropertyName}={Value}.
/Quiet: /q: {True|False} Spécifie si les commentaires détaillés sont supprimés. Valeur par défaut False.
/SourceFile: /sf: {string} Spécifie un fichier source à utiliser comme source d’action à partir du stockage local. Si ce paramètre est utilisé, aucun autre paramètre source ne doit être valide.
/TargetConnectionString: /tcs: {string} Spécifie une chaîne de connexion SQL Server/Azure valide à la base de données cible. Si ce paramètre est spécifié, la chaîne de connexion doit être utilisée exclusivement par tous les autres paramètres cibles.
/TargetDatabaseName: /tdn: {string} Spécifie une substitution pour le nom de la base de données qui est la cible de l’action SqlPackage.
/TargetEncryptConnection: /tec: {Optional|Mandatory|Strict|True|False} Spécifie si le chiffrement SQL doit être utilisé pour la connexion de la base de données cible. La valeur par défaut est True.
/TargetHostNameInCertificate: /thnic: {string} Spécifie la valeur qui est utilisée pour valider le certificat TLS/SSL SQL Server cible quand la couche de communication est chiffrée à l’aide du protocole TLS.
/TargetPassword: /tp: {string} Pour les scénarios d’authentification SQL Server, définit le mot de passe à utiliser pour accéder à la base de données cible.
/TargetServerName: /tsn: {string} Définit le nom du serveur hébergeant la base de données cible.
/TargetTimeout: /tt: {int} Spécifie le délai d’attente (en secondes) pour l’établissement d’une connexion à la base de données cible. Pour Microsoft Entra ID, il est recommandé que cette valeur soit supérieure ou égale à 30 secondes.
/TargetTrustServerCertificate: /ttsc: {True|False} Spécifie s’il faut utiliser TLS pour chiffrer la connexion de la base de données cible et ignorer la vérification de la chaîne de certificats pour valider la chaîne d’approbation. La valeur par défaut est False.
/TargetUser: /tu: {string} Pour les scénarios d’authentification SQL Server, définit l’utilisateur SQL Server à utiliser pour accéder à la base de données cible.
/TenantId: /tid: {string} Représente le nom de domaine ou l’ID de locataire Microsoft Entra. Cette option est requise pour la prise en charge des utilisateurs Microsoft Entra invités ou importés ainsi que des comptes Microsoft tels que outlook.com, hotmail.com ou live.com. Si ce paramètre est omis, l’ID de locataire par défaut pour Microsoft Entra ID est utilisé, à condition que l’utilisateur authentifié soit un utilisateur natif pour cette instance AD. Toutefois, dans ce cas, les utilisateurs invités ou importés et/ou les comptes Microsoft hébergés dans cette instance Microsoft Entra ID ne sont pas pris en charge et l’opération échoue.
Pour plus d’informations, consultez Authentification universelle avec SQL Database et Azure Synapse Analytics (prise en charge de SSMS pour la MFA).
/ThreadMaxStackSize: /tmss: {int} Spécifie la taille maximale en mégaoctets du thread qui exécute l’action SqlPackage. Cette option ne doit être utilisée que pour les exceptions de dépassement de la capacité de la pile qui se produisent lors de l’analyse d’instructions Transact-SQL très volumineuses.
/UniversalAuthentication: /ua: {True|False} Spécifie si l’authentification universelle doit être utilisée. Quand la valeur est true, le protocole d’authentification interactive prend en charge l’authentification multifacteur. Cette option peut également être utilisée pour l’authentification Microsoft Entra sans authentification multifacteur, à l’aide d’un protocole interactif qui oblige l’utilisateur à saisir son nom d’utilisateur et son mot de passe ou de l’authentification intégrée (identifiants Windows). Si /UniversalAuthentication est défini sur True, aucune authentification Microsoft Entra ne peut être spécifiée dans SourceConnectionString (/scs). Si /UniversalAuthentication est défini sur False, l’authentification Microsoft Entra doit être spécifiée dans SourceConnectionString (/scs).
Pour plus d’informations, consultez Authentification universelle avec SQL Database et Azure Synapse Analytics (prise en charge de SSMS pour la MFA).

Propriétés spécifiques de l’action Import

Propriété Valeur Description
/p: CommandTimeout=(INT32 '60') Spécifie le délai d’expiration de la commande (en secondes) lors de l’exécution de requêtes SQL Server.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Définit l’édition d’une base de données Azure SQL Database. Consultez Niveaux de service Azure SQL Database.
/p: DatabaseLockTimeout=(INT32 '60') Spécifie le délai d’expiration (en secondes) du verrouillage de la base de données lors de l’exécution de requêtes dans SQL Server. Utilisez -1 pour attendre indéfiniment.
/p: DatabaseMaximumSize=(INT32 '0') Définit la taille maximale, en Go, d’une base de données Azure SQL Database.
/p: DatabaseServiceObjective=(STRING) Définit le niveau de performances d’une base de données Azure SQL Database, par exemple « P0 » ou « S1 ».
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') Quand la valeur est true (valeur par défaut), désactive les index avant d’importer les données. Quand la valeur est false, les index ne sont pas reconstruits.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') Pas d’utilisation du parallélisme lors de la régénération des index lors de l’importation des données dans SQL Server.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Spécifie s’il faut remplacer tous les noms d’objets par une valeur de hachage aléatoire dans les journaux.
/p: ImportContributorArguments=(STRING) Spécifie des arguments de collaborateur de déploiement pour les collaborateurs de déploiement. Cette propriété doit être une liste de valeurs délimitée par des points-virgules.
/p: ImportContributorPaths=(STRING) Spécifie les chemins d’accès pour charger des contributeurs d’importation supplémentaires. Cette propriété doit être une liste de valeurs délimitée par des points-virgules.
/p: ImportContributors=(STRING) Spécifie les collaborateurs de déploiement qui doivent être en cours d’exécution quand le fichier bacpac est importé. Cette propriété doit être une liste d’ID ou de noms de collaborateurs de build complets délimitée par des points-virgules.
/p: LongRunningCommandTimeout=(INT32 '0') Spécifie le délai d’expiration (en secondes) de la commande longue lors de l’exécution de requêtes dans SQL Server. Utilisez 0 pour attendre indéfiniment.
/p: PreserveIdentityLastValues=(BOOLEAN 'False') Spécifie si les dernières valeurs des colonnes d’identité doivent être conservées au cours du déploiement.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Quand sa valeur est true, reconstruit les index hors connexion après avoir importé des données dans SQL Server.
/p: Storage=({File|Memory}) Spécifie comment les éléments sont stockés lors de l’élaboration du modèle de base de données. Pour des raisons de performance, la valeur par défaut est InMemory. Pour les bases de données très volumineuses, un stockage sauvegardé de fichiers (File) est exigé.

Étapes suivantes