Я написал программу для вставки некоторых записей с использованием sqlCopy для более быстрой обработки, а затем код выполняет и обновляет оператор [в другой таблице] на основе вновь вставленных записей.Обновление выполняется до BulkInsert
Проблема в том, что обновление почти всегда выполняется перед вставкой! [около 2 секунд до .. в соответствии с отметками времени строк вставки и обновления.] единственный способ, которым я мог сделать обновление, выполнить после того, как вставка будет содержать спящий код в течение 2-3 секунд. Есть ли более чтобы убедиться, что вставка завершена до того, как код продолжается?
Я даже захватил событие RowsCopied, строки мгновенно скопированы «до» обновления. но в базе данных обновление происходит раньше.
bulkCopy.WriteToServer(table)
Dim Sql = "Update tbl Set Total = (select sum(qty) from Inserttbl where inId = ID)"
ExecuteSQL(Sql)
Вы пытались использовать 'bulkCopy.Options' TableLock ...? – Codexer
Являются ли bulkCopy и ExecuteSQL одним и тем же соединением? Если это так, на основе MSDN это невозможно. Кстати, я проверил пример SqlBulkCopy, и эти коды используют инструкцию «USING». Проверьте это: https://msdn.microsoft.com/en-us/library/ex21zs8x(v=vs.110).aspx – FLICKER
WriteToServer является синхронным. Я предлагаю вам запустить трассировку SQL, чтобы увидеть фактические запросы, отправляемые на SQL Server. –