Trigger non funziona in BulkCopy in Sql Server

c# sqlbulkcopy sql-server triggers

Domanda

Ho un'applicazione attraverso la quale sto inserendo record di massa in una tabella usando SqlBulkCopy. Ho un trigger che inserisce i record aggiunti nella prima tabella in un'altra tabella.

Quando inserisco, ho scritto SqlBulkCopyOptions.FireTriggers in C #, ma non funziona con Sql Server 2005. Quando ha funzionato con SqlServer2008 funziona correttamente.

Nel server Sql 2005, ogniqualvolta i record vengono inseriti nella prima tabella, nella seconda tabella viene visualizzato un solo record delle righe INSERTED.

Posso gestirlo usando solo il server Sql?

Risposta esperta

Un'opzione qui sarebbe quella di eseguire il bulk-copy in una tabella di staging (una seconda tabella semplice, non parte del modello di dati principale, in genere nessuna indicizzazione / vincoli / trigger / ecc.), Quindi emettere un INSERT basato su SELECT per ottenere il dati dalla tabella di staging nella tabella transazionale principale. Ciò consente di ottenere i vantaggi della larghezza di banda di SqlBulkCopy , ma mantiene comunque la funzionalità completa di SQL Server per l' INSERT finale.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow