Как отправить команду на SQL Сервер, завершивший пакет, запущенный из запроса на выборку, отправленного программой VB. Net? - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь выполнить запрос на выборку (с объединениями), и когда появляется небольшое количество возвращаемых записей, я вижу в SQL Server Profiler следующий EventClass: SQL: BatchStarting и после этого SQL: BatchCompleted. Я использую ExecuteReader из ADO. NET. Пока все хорошо, я могу использовать информацию и сделать несколько вставок в той же таблице. Я извлек информацию в запросе на выборку.

Но когда запрос на выборку возвращает больше строк (я не могу указать, сколько , но я считаю, что это не имеет значения) SQL Server Profiler не показывает событие SQL: BatchCompleted, и нужная мне вставка не может быть запущена, поскольку пакет все еще выполняется.

Как отправить команду на выполнение и вернуть все строки, а затем завершить пакет.

Я использую VB. NET, но я верю, что ответы C# также могут мне помочь.

1 Ответ

0 голосов
/ 15 февраля 2020

Пакетный запрос не завершен, пока клиент не выберет строки.

Если вам нужно вызвать SqlDataReader.Read () для каждой строки в результате, а затем SqlDataReader.Close () или SqlDataReader.Dispose (), чтобы завершить пакетный запрос.

...