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

L’action Export de SqlPackage exporte une base de données connectée vers un fichier BACPAC (.bacpac). Par défaut, les données de toutes les tables sont incluses dans le fichier .bacpac. Si vous le souhaitez, vous pouvez spécifier uniquement un sous-ensemble de tables pour lequel exporter des données. L’action Exporter 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’exportation 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:Export {parameters} {properties}

Paramètres obligatoires

L’action Exporter nécessite un paramètre TargetFile pour spécifier le nom et l’emplacement du fichier .bacpac à créer. Cet emplacement doit être accessible en écriture par l’utilisateur exécutant la commande et le dossier conteneur doit exister.

L’action Exportation nécessite également qu’une source de base de données soit spécifiée, soit par le biais d’une combinaison de :

  • Paramètres SourceServerName et SourceDatabaseName, ou
  • SourceConnectionString, paramètre.

Exemples

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

Paramètres de l’action Export

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: Exporter 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.
/OverwriteFiles: /of: {True|False} Indique si SqlPackage doit remplacer les fichiers existants. Si vous choisissez False, SqlPackage abandonne l’action si un fichier existant est rencontré. La valeur par défaut est True.
/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.
/SourceConnectionString: /scs: {string} Spécifie une chaîne de connexion SQL Server/Azure valide à la base de données source. Si ce paramètre est spécifié, la chaîne de connexion doit être utilisée exclusivement par tous les autres paramètres sources.
/SourceDatabaseName: /sdn: {string} Définit le nom la base de données source.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Spécifie si le chiffrement SQL doit être utilisé pour la connexion à la base de données source. La valeur par défaut est True.
/SourceHostNameInCertificate: /shnic: {string} Spécifie la valeur qui est utilisée pour valider le certificat TLS/SSL SQL Server source quand la couche de communication est chiffrée à l’aide du protocole TLS.
/SourcePassword: /sp: {string} Pour les scénarios d’authentification SQL Server, définit le mot de passe à utiliser pour accéder à la base de données source.
/SourceServerName: /ssn: {string} Définit le nom du serveur hébergeant la base de données source.
/SourceTimeout : /st: {int} Spécifie le délai d’attente (en secondes) pour l’établissement d’une connexion à la base de données source.
/SourceTrustServerCertificate: /stsc: {True|False} Spécifie s’il faut utiliser TLS pour chiffrer la connexion de la base de données source 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.
/SourceUser: /su: {string} Pour les scénarios d’authentification SQL Server, définit l’utilisateur SQL Server à utiliser pour accéder à la base de données source.
/TargetFile : /tf: {string} Spécifie un fichier cible (autrement dit, un fichier .dacpac) à utiliser comme cible d’action au lieu d’une base de données. Si ce paramètre est utilisé, aucun autre paramètre cible n’est valide. Ce paramètre ne doit pas être valide pour les actions qui prennent uniquement en charge les cibles de base de données.
/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 ce locataire. 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 à l’action Export

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: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} ’Normal’) Spécifie le type de compression.
/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: 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: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Spécifie si les index ou statistiques de colonnes chiffrées à l’aide du chiffrement aléatoire et de clés de chiffrement de colonne avec enclave doivent être ignorés (non inclus dans le fichier bacpac généré). Par défaut (false), tout index ou une statistique sur une colonne chiffrée à l’aide d’un chiffrement aléatoire et d’une clé de chiffrement de colonne compatible avec les enclaves bloque l’action d’exportation.
/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: Storage=({File|Memory}) Spécifie le type de stockage de sauvegarde pour le modèle de schéma utilisé lors de l’extraction. La valeur par défaut est « Memory » pour la version .NET Core de SqlPackage. La valeur « File » n’est disponible que pour la version .NET Framework de SqlPackage où elle est la valeur par défaut.
/p: TableData=(STRING) Indique la table à partir de laquelle les données sont extraites. Spécifiez les parties du nom de la table avec ou sans crochets sous le format suivant : nom_schéma.identificateur_table. Cette propriété peut être spécifiée plusieurs fois pour indiquer plusieurs options.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Cette propriété est déconseillée et l’utilisation n’est pas recommandée. Spécifie la version attendue du moteur cible d’Azure SQL Database.
/p: TempDirectoryForTableData=(STRING) Spécifie un autre répertoire temporaire utilisé pour la mise en mémoire tampon des données de table avant leur écriture dans le fichier de package. L’espace requis à cet emplacement peut être important et dépend de la taille totale de la base de données.
/p: VerifyExtraction=(BOOLEAN 'True') Spécifie si le modèle de schéma extrait doit être vérifié. Si la valeur est true, les règles de validation de schéma sont exécutées sur le fichier dacpac ou bacpac.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Indique si les types de document de texte intégral pris en charge pour Microsoft Azure SQL Database v12 doivent être vérifiés.

Étapes suivantes