Il est possible d'utiliser SqlBulkCopy pour insérer des informations dans une vue sur 2 tables?

c# sqlbulkcopy sql-server

Question

Je vais utiliser SqlBulkCopy pour traiter les insertions volumineuses dans certaines bases de données. Cela a conduit à de grandes améliorations de performances pour une base de données.

Cependant, une autre table de base de données ciblée est une vue composée de 2 tables. L'application du code de table unique conduit à "System.Data.SqlClient.SqlException: la vue ou la fonction 'dbo.vwParameter' ne peut pas être mise à jour car la modification affecte plusieurs tables de base". Il est possible d’aplatir la vue dans une seule table sans causer beaucoup de complications, bien que cela ne soit pas souhaitable, car cela économise un peu d’espace disque.

Donc, est-il possible d'utiliser SqlBulkCopy dans ce contexte, et je fais juste quelque chose de mal? Ou si non, qu'est-ce qui pourrait être un bon contournement qui conserve la vue pour la lecture?

Réponse acceptée

Il s'est avéré que SqlBulkCopy a ignoré mes déclencheurs au lieu de mes déclencheurs par défaut. Tout ce que je devais faire était de passer SqlBulkCopyOptions.FireTriggers au constructeur SqlBulkCopy.


Réponse populaire

Vous pouvez utiliser view avec SqlBulkCopy.
Mais je pense que votre problème est que l’avis que vous avez n’est pas modifiable.
Certaines conditions doivent être respectées pour pouvoir être mises à jour.
Vous pouvez trouver plus d'informations ici http://msdn.microsoft.com/en-us/library/ms187956.aspx
Recherchez la section "Vues actualisables".

Je vous suggère de remplir chacune de ces deux tables directement, une à la fois, si possible?



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