Как проверить, завершила ли хранимая процедура все операции вставки / удаления / обновления? - PullRequest
2 голосов
/ 27 июня 2011

У меня есть хранимая процедура в SQL Server 2008, и она выполняет довольно много операций вставки / удаления / обновления.

Теперь мне интересно, мог бы я каким-либо образом определить, завершила ли хранимая процедура ВСЕ операции вставки / удаления / обновления .

Также я понимаю, что из хранимой процедуры может быть возвращено значение, которое в данном случае может быть statusCode (0/1).Но в ходе некоторых моих экспериментов я обнаружил, что statusCode всегда будет возвращаться сразу после завершения выполнения хранимой процедуры, в то время как вставка / удаление / обновление фактически продолжаются.Итак, что я должен сделать здесь, чтобы увидеть, что statusCode возвращается только тогда, когда все операции вставки / удаления / обновления завершены?

Спасибо.

Структура кода:

BEGIN
    DECLARE @statusCode
    SET @statusCode = 0

    -- Loop through all tables in a given database
    -- using cursor
    -- do Insert / Update/ Delete operations

    SET @statusCode = 1
    SELECT @statusCode 
END

1 Ответ

2 голосов
/ 27 июня 2011

Если хранимая процедура возвращается, все операции для этого вызова завершены.

У вас есть не видимые операции, продолжающиеся после завершения хранимой процедуры, если только другое соединение также не вносит изменения. Для одного это сломало бы A в КИСЛОТУ

...