Es ist möglich, SqlBulkCopy zu verwenden, um Informationen in eine Ansicht über 2 Tabellen einzufügen?

c# sqlbulkcopy sql-server

Frage

Ich ziehe es vor, SqlBulkCopy zu verwenden, um mit großen Einfügungen in einige Datenbanken umzugehen. Dies hat zu großen Leistungsverbesserungen für eine db geführt.

Eine andere Ziel-db-Tabelle ist jedoch eine Ansicht, die 2 Tabellen zusammensetzt. Die Anwendung des einzelnen Tabellencodes führt zu "System.Data.SqlClient.SqlException: View oder Funktion 'dbo.vwParameter' ist nicht aktualisierbar, da sich die Änderung auf mehrere Basistabellen auswirkt". Es ist möglich, die Ansicht in eine Tabelle zu reduzieren, ohne viele Komplikationen zu verursachen, obwohl dies unerwünscht ist, da es einen guten Teil Speicherplatz spart.

Also ist es möglich, SqlBulkCopy in diesem Kontext zu verwenden, und ich mache gerade etwas falsch? Oder wenn nicht, was könnte ein guter Work-around sein, der die Sicht zum Lesen bewahrt?

Akzeptierte Antwort

Es stellte sich heraus, dass SqlBulkCopy meine anstelle von Triggern standardmäßig ignorierte. Alles, was ich tun musste, war, SqlBulkCopyOptions.FireTriggers an den SqlBulkCopy-Konstruktor zu übergeben.


Beliebte Antwort

Sie können die Ansicht mit SqlBulkCopy verwenden.
Aber ich glaube, Ihr Problem besteht darin, dass Ihre Ansicht nicht aktualisierbar ist.
Es gibt bestimmte Anforderungen, die die Sicht erfüllen muss, um aktualisierbar zu sein.
Weitere Informationen finden Sie hier http://msdn.microsoft.com/en-us/library/ms187956.aspx
Suchen Sie nach dem Abschnitt "Aktualisierbare Ansichten".

Ich würde vorschlagen, dass Sie jeden dieser beiden Tische, einzeln nacheinander, direkt ausfüllen.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum