Если у меня есть хранимая процедура, которая несколько раз выполняет другую хранимую процедуру с разными аргументами, возможно ли, чтобы каждый из этих вызовов совершал независимую от других?Как я могу гарантировать, что вложенные транзакции совершаются независимо друг от друга?
Другими словами, если первые два выполнения вложенной процедуры успешны, но третий не удался, можно ли сохранить результаты первых двух исполнений (а не отбросить их назад)?
Я хранимая процедура, определенная что-то вроде этого в 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
"использовать ROLLBACK TRAN вместо ROLLBACK TRAN" ?? – Greg
@Greg - спасибо, что указали это. Текст, который я цитировал, использовал угловые скобки вокруг текста 'savepoint_name', и это заставило механизм разметки SO скрыть текст. Изменили текст, чтобы использовать квадратные скобки. – Tony
Спасибо за исправление! – Greg