L'aggiornamento è in esecuzione prima di BulkInsert

bulkinsert sqlbulkcopy sql-server vb.net

Domanda

Ho scritto un programma per inserire alcuni record usando sqlCopy per un'elaborazione più veloce, quindi il codice esegue e aggiorna l'istruzione [su un'altra tabella] in base ai nuovi record inseriti.

Il problema è che l'aggiornamento viene eseguito quasi sempre prima dell'inserimento! [circa 2 secondi prima .. secondo i timestamp dell'inserto e aggiorna le righe.] l'unico modo in cui posso eseguire l'aggiornamento dopo l'inserimento è di mettere il codice addormentato per 2-3 secondi .. Esiste un migliore modo per assicurarsi che l'inserimento sia completato prima che il codice continui?

Ho persino catturato l'evento RowsCopied, le righe vengono immediatamente copiate "prima" dell'aggiornamento. ma nel database l'aggiornamento arriva prima.

     bulkCopy.WriteToServer(table)

     Dim Sql = "Update tbl Set Total = (select sum(qty) from Inserttbl where inId = ID)"
     ExecuteSQL(Sql)

Risposta accettata

Trovato il problema ... il timestamp di inserimento è stato fornito dal client, mentre il timestamp di aggiornamento proviene dal server. Il tempo dei client è 2 secondi prima dell'ora dei server ..

Ho cambiato entrambi dovrebbero usare la funzione getDate del server. problema risolto.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché