Метод ServerConnection.Cancel

Класс SqlCommand имеет метод Cancel, который, согласно документации, позволяет отменить команду.

Я ищу эквивалентный метод для команд, выполняемых с помощью smo Server class. Класс ServerConnection (поле connectioncontext для класса сервера) имеет метод Отмена, но документация неясна в том, что он делает.

Ответы

Ответ 1

Метод SeverConnection.Cancel() работает аналогично по методу SqlCommand.Cancel(), а Documentation утверждает:

Если ничего не отменяется, ничего не происходит. Однако, если есть команда в процессе, и попытка отмены не выполняется, исключение не является генерироваться.

В некоторых, редких случаях, если вы вызываете ExecuteReader, тогда вызовите Close (неявно или явно) перед вызовом Отмена, а затем вызовите Отмена, команда cancel не будет отправлена ​​на SQL Server, а набор результатов может продолжать поток после вызова Close. Чтобы этого избежать, убедитесь, что вы вызываете "Отмена" перед закрытием устройства чтения или соединение.

Значение метода отмены будет работать, Если вы вызываете его перед вызовом метода close().

Если вы вызовете это после, команда не будет отправлена ​​в sql, что приведет к продолжению потока в sql после вызова метода close().

Кроме того, если есть команда в процессе и попытка отменить не удается, вы не получите сообщение об ошибке, поскольку в этом случае не генерируется исключение.