Si tengo un procedimiento almacenado que ejecuta otro procedimiento almacenado varias veces con diferentes argumentos, ¿es posible hacer que cada una de estas llamadas se confirme independientemente de las demás?¿Cómo puedo asegurarme de que las transacciones anidadas se confirman de forma independiente?
En otras palabras, si las dos primeras ejecuciones del procedimiento anidado tienen éxito, pero la tercera falla, ¿es posible preservar los resultados de las dos primeras ejecuciones (y no hacerlas retroceder)?
he un procedimiento definido almacenado algo como esto en 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
"usar ROLLBACK TRAN en lugar de ROLLBACK TRAN" ?? – Greg
@Greg - gracias por señalar eso. El texto que cité usó corchetes angulares alrededor del texto 'savepoint_name' y eso causó que el motor de marcado SO ocultara el texto. He editado el texto para usar corchetes. – Tony
¡Gracias por corregirlo! – Greg