Le déclencheur ne fonctionne pas dans BulkCopy dans Sql Server

c# sqlbulkcopy sql-server triggers

Question

J'ai une application par laquelle j'insère des enregistrements en bloc dans une table à l'aide de SqlBulkCopy. J'ai un déclencheur qui insère les enregistrements ajoutés dans la première table dans une autre table.

Quand j'insère j'ai écrit SqlBulkCopyOptions.FireTriggers en C #, mais cela ne fonctionne pas avec Sql Server 2005. Lorsqu'il fonctionne avec SqlServer2008, il fonctionne bien.

Dans SQL Server 2005, chaque fois que les enregistrements sont insérés dans la première table, seul un enregistrement parmi les lignes INSERTED apparaît dans la seconde table.

Puis-je gérer cela en utilisant SQL Server seul?

Réponse d'expert

Une option ici serait de copier en bloc dans une table intermédiaire (une seconde table simple - ne faisant pas partie du modèle de données principal; généralement, pas d'indexation / de contraintes / de déclencheurs / etc.), puis d'émettre un INSERT basé sur SELECT les données de la table de transfert dans la table transactionnelle principale. Cela vous permet d’obtenir les avantages en SqlBulkCopy de bande passante de SqlBulkCopy , tout en maintenant une fonctionnalité SQL-Server complète pour l’ INSERT final.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi