Partager via


Consignes de base concernant l'importation de données en bloc

Vous pouvez exécuter la commande bcp, l'instruction BULK INSERT ou la fonction OPENROWSET(BULK) pour importer des données en bloc uniquement à partir d'un fichier de données.

Notes

Il est possible d'écrire une application personnalisée qui importe des données en bloc à partir d'objets autres qu'un fichier texte. Pour importer des données en bloc à partir de mémoires tampons, utilisez les extensions bcp de l'interface de programmation d'applications (API) (ODBC) SQL Server Native Client ou l'interface OLE DB IRowsetFastLoad. Pour importer des données en bloc à partir d'une table de données C#, utilisez l'API de copie en bloc ADO.NET, SqlBulkCopy.

Notes

L'importation de données en bloc dans une table distante n'est pas prise en charge.

Lorsque vous importez des données en bloc à partir d'un fichier de données dans une instance de Microsoft SQL Server, respectez les consignes suivantes :

  • Procurez-vous les autorisations nécessaires à votre compte d'utilisateur.

    Le compte d'utilisateur dans lequel vous utilisez l'utilitaire bcp, l'instruction BULK INSERT ou INSERT ... SELECT * FROM OPENROWSET(BULK...) doit bénéficier des autorisations nécessaires sur la table (affectées par le propriétaire de la table). Pour plus d'informations sur les autorisations requises par chaque méthode, consultez Utilitaire bcp, OPENROWSET (Transact-SQL) et BULK INSERT (Transact-SQL).

  • Utilisez le mode de récupération utilisant les journaux de transactions.

    Cette instruction s'applique à une base de données employant le mode de sauvegarde complète. Le mode de récupération utilisant les journaux de transactions permet d'effectuer des opérations en bloc dans une table non indexée (un segment). La récupération utilisant les journaux de transactions permet d'éviter que le journal des transactions ne manque d'espace dans la mesure où les insertions de lignes ne sont pas consignées. Pour plus d'informations sur le mode de récupération utilisant les journaux de transactions, consultez Sauvegarde avec le mode de récupération utilisant les journaux de transactions.

    Nous vous recommandons de modifier la base de données pour utiliser le mode de récupération utilisant les journaux de transactions juste avant l'opération d'importation en bloc. Rétablissez la base de données en mode de récupération complète immédiatement après. Pour plus d'informations, consultez Considérations relatives au remplacement du mode de récupération complet ou du mode de récupération utilisant les journaux de transactions.

    Notes

    Pour plus d'informations sur comment minimiser la journalisation au cours des opérations d'importation en bloc, consultez Conditions requises pour une journalisation minimale dans l'importation en bloc.

  • Sauvegardez après l'importation en bloc de données.

    Pour une base de données qui utilise le mode de récupération simple, il est recommandé de réaliser une sauvegarde complète ou différentielle après l'opération d'importation en bloc. Pour plus d'informations, consultez Création de sauvegardes différentielles et complètes d'une base de données SQL Server.

    Pour le mode de récupération complète ou le mode de récupération utilisant les journaux de transactions, une sauvegarde de fichier journal suffit. Pour plus d'informations, consultez Création de sauvegardes des fichiers journaux de transactions.

  • Supprimez les index de table pour améliorer les performances pour les importations en bloc importantes.

    Cette instruction concerne l'importation d'une grande quantité de données comparée à la quantité de données déjà présente dans la table. Dans ce cas, la suppression des index de la table avant d'effectuer l'opération d'importation en bloc peut augmenter les performances considérablement.

    Notes

    En revanche, si vous chargez une petite quantité de données comparée à la quantité de données figurant dans la table, la suppression des index est contre-productive. En effet, la durée de régénération des index peut se révéler supérieure au gain de temps réalisé durant l'opération d'importation en bloc.

    Pour plus d'informations, consultez Optimisation de l'importation en bloc.

  • Recherchez et supprimez les caractères masqués dans le fichier de données.

    De nombreux utilitaires et éditeurs de texte affichent les caractères masqués qui figurent généralement à la fin du fichier de données. Durant une opération d'importation en bloc, les caractères masqués d'un fichier de données ASCII peuvent causer des problèmes qui génèrent une erreur de type « une valeur NULL inattendue a été trouvée ». Il suffit en général de rechercher et de supprimer les caractères masqués pour éviter ce problème.