Opérations de copie en bloc dans SQL Server

Microsoft SQL Server inclut un utilitaire en ligne de commande connu, bcp, pour rapidement copier en bloc des fichiers volumineux dans des tables ou des vues de bases de données SQL Server. La classe SqlBulkCopy vous permet d’écrire des solutions de code managé, qui fournissent des fonctionnalités similaires. Il existe d’autres façons de charger des données dans une table SQL Server (instructions INSERT, par exemple) mais SqlBulkCopy offre de meilleures performances.

La classe SqlBulkCopy peut être utilisée pour écrire des données uniquement sur les tables SQL Server. Toutefois, la source de données n'est pas limitée à SQL Server ; n'importe quelle source de données peut être utilisée, pour autant que les données puissent être chargées dans une instance de DataTable ou lues avec une instance de IDataReader.

À l'aide de la classe SqlBulkCopy, vous pouvez :

  • Une opération unique de copie en bloc

  • Plusieurs opérations de copie en bloc

  • Une opération de copie en bloc dans une transaction

Notes

Quand vous utilisez .NET Framework version 1.1 ou antérieure (ne prenant pas en charge la classe SqlBulkCopy), vous pouvez exécuter l’instruction SQL Server Transact-SQL BULK INSERT à l’aide de l’objet SqlCommand.

Dans cette section

Exemple de configuration de copie en bloc
Décrit les tables utilisées dans les exemples de copie en bloc et fournit des scripts SQL pour créer les tables dans la base de données AdventureWorks.

Opérations uniques de copie en bloc
Décrit comment effectuer une seule copie en bloc de données dans une instance de SQL Server à l’aide de la classe SqlBulkCopy et comment effectuer l’opération de copie en bloc à l’aide d’instructions Transact-SQL et de la classe SqlCommand.

Plusieurs opérations de copie en bloc
Décrit comment effectuer plusieurs opérations de copie en bloc de données dans une instance de SQL Server à l’aide de la classe SqlBulkCopy.

Transaction et opérations de copie en bloc
Décrit comment effectuer une opération de copie en bloc dans une transaction, y compris la validation ou la restauration de la transaction.

Voir aussi