Partager via


Préparer des données à une exportation ou une importation en bloc

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Cette section présente les points à prendre en considération lors de la planification d'opérations d'exportation en bloc et les contraintes liées aux opérations d'importation en bloc.

Notes

Si vous ne savez pas comment mettre en forme un fichier de données pour l’importation en bloc, utilisez l’utilitaire bcp pour exporter des données de la table dans un fichier de données. La mise en forme de chaque champ de données dans ce fichier indique la mise en forme nécessaire pour importer des données en bloc dans la colonne de table correspondante. Utilisez la même mise en forme des données pour les champs de votre fichier de données.

Considérations relatives au format de fichier de données pour l’exportation en bloc

Avant de réaliser une opération d’exportation en bloc à l’aide de la commande bcp , prenez en considération les points suivants :

  • Lorsque des données sont exportées vers un fichier, la commande bcp crée automatiquement le fichier de données en utilisant le nom de fichier spécifié. Si ce nom de fichier est déjà utilisé, les données en cours de copie en bloc dans le fichier de données remplacent le contenu existant de ce fichier.

  • L’exportation en bloc d’une table ou d’une vue vers un fichier de données nécessite SELECT l’autorisation sur la table ou la vue qui est copiée en bloc.

  • SQL Server pouvez utiliser des analyses parallèles pour récupérer des données. Par conséquent, les lignes de table exportées en bloc à partir d’un instance de SQL Server ne sont généralement pas garanties de se trouver dans un ordre spécifique dans le fichier de données. Pour que les lignes de table exportées en bloc s’affichent dans un ordre spécifique dans le fichier de données, utilisez l’option d’expiration de requête pour exporter en bloc à partir d’une requête et spécifiez une ORDER BY clause.

Exigences de format de fichier de données pour l’importation en bloc

Pour que les données puissent être importées depuis un fichier de données, celui-ci doit satisfaire aux conditions de base suivantes :

  • Les données doivent être organisées en lignes et en colonnes.

Notes

La structure du fichier de données n’a pas besoin d’être identique à la structure de la table SQL Server, car les colonnes peuvent être ignorées ou réorganisées pendant le processus d’importation en bloc.

  • Le format des données du fichier de données doit être un format pris en charge, par exemple le format caractère ou le format natif.

  • Le format des données peut être le format binaire natif ou caractère, notamment le format Unicode.

  • Pour importer des données à l’aide d’une commande, BULK INSERT d’une instruction ou INSERT ... SELECT * FROM OPENROWSET(BULK...) d’une instruction bcp, la table de destination doit déjà exister.

  • Chaque champ du fichier de données doit être compatible avec la colonne correspondante de la table cible. Par exemple, un champ int ne peut pas être chargé dans une colonne datetime . Pour plus d’informations, consultez Formats de données pour l’importation ou l’exportation en bloc (SQL Server) et Spécifier les formats de données de compatibilité lors de l’utilisation de bcp (SQL Server).

    Notes

    Pour spécifier un sous-ensemble de lignes à importer à partir d’un fichier de données plutôt que du fichier entier, vous pouvez utiliser une commande bcp avec le commutateur et/ou -L <last_row> le -F <first_row> commutateur. Pour plus d’informations, consultez bcp Utility.

  • Pour importer des données à partir de fichiers de données contenant des champs de longueur fixe ou de largeur fixe, utilisez un fichier de format. Pour plus d’informations, consultez Fichiers de format XML (SQL Server).

  • À compter de SQL Server 2017 (14.x), un fichier CSV peut être utilisé comme fichier de données pour une importation en bloc de données dans SQL Server. La fin de champ d’un fichier CSV n’a pas besoin d’être une virgule. Pour être utilisable comme fichier de données pour une importation en bloc, un fichier CSV doit être conforme aux restrictions suivantes :

En outre, l’importation en bloc de données à partir d’un fichier de données dans une table présente les conditions suivantes :

  • Les utilisateurs doivent disposer des INSERT autorisations et SELECT sur la table. Les utilisateurs ont également besoin d’une ALTER TABLE autorisation lorsqu’ils utilisent des options qui nécessitent des opérations en langage de définition de données (DDL), telles que la désactivation de contraintes.

  • Lorsque vous importez des données en bloc à l’aide BULK INSERT de ou INSERT ... SELECT * FROM OPENROWSET(BULK...), le fichier de données doit être accessible pour les opérations de lecture par le profil de sécurité du processus SQL Server (si l’utilisateur se connecte à l’aide de SQL Server connexion fournie) ou par la connexion Microsoft Windows utilisée sous sécurité déléguée. En outre, l’utilisateur doit avoir ADMINISTER BULK OPERATIONS l’autorisation de lire le fichier.

Notes

L'importation en bloc dans une vue partitionnée n'est pas prise en charge et toute tentative en ce sens est vouée à l'échec.