La mise à jour est en cours d'exécution avant BulkInsert

bulkinsert sqlbulkcopy sql-server vb.net

Question

J'ai écrit un programme pour insérer des enregistrements en utilisant sqlCopy pour un traitement plus rapide, puis le code s'exécute et met à jour l'instruction [sur une autre table] en fonction des enregistrements récemment insérés.

Le problème est que la mise à jour est presque toujours exécutée avant l'insertion! [environ 2 secondes avant… selon les horodatages de l'insertion et de la mise à jour des lignes.] le seul moyen de faire exécuter la mise à jour après l'insertion est de mettre le code en veille pendant 2-3 secondes moyen de vous assurer que l'insertion est terminée avant que le code continue?

J'ai même capturé l'événement RowsCopied, les lignes sont instantanément copiées "avant" la mise à jour. mais dans la base de données, la mise à jour arrive plus tôt.

     bulkCopy.WriteToServer(table)

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

Réponse acceptée

Trouvé le problème ... l'horodatage d'insertion a été fourni par le client, tandis que l'horodatage de mise à jour provenait du serveur. Le temps des clients est 2 secondes plus tôt que celui des serveurs.

J'ai changé les deux devraient utiliser la fonction getDate de serveurs. problème résolu.



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