Как я могу гарантировать, что вложенные транзакции фиксируются независимо друг от друга?

Если у меня есть хранимая процедура, которая выполняет другую хранимую процедуру несколько раз с разными аргументами, возможно ли, чтобы каждый из этих вызовов фиксировался независимо от других?

Другими словами, если первый два выполнения вложенной процедуры завершаются успешно, но третье завершается неудачно, можно ли сохранить результаты первых двух выполнений (и не откатить их назад)?

У меня есть хранимая процедура, определенная примерно так в SQL Server 2000 :

CREATE PROCEDURE toplevel_proc ..
AS
BEGIN

         ...

         while @row_count <= @max_rows
    begin
        select @parameter ... where rownum = @row_count 
        exec nested_proc @parameter
        select @row_count = @row_count + 1
    end

END
8
задан user000001 31 August 2013 в 11:10
поделиться