Ver Mensaje Individual
  #1  
Antiguo 07-05-2010
molusco molusco is offline
Registrado
 
Registrado: may 2010
Posts: 1
Reputación: 0
molusco Va por buen camino
Transaciones en Stored Procedure

Hola amigos.

Estoy empezando el mundo delphi 7 y con base de datos sql2000

Tengo una tabla donde dos columnas de ellas forma un index unico: (serie, numero)

He creado la siguiente SP, para hacer una pruebas.


Código SQL [-]
CREATE PROCEDURE insert_tab
AS
BEGIN
--SET XACT_ABORT ON 
begin TRANSACTION
INSERT INTO dbo.aa_prueba ( serie, numero ) VALUES ( 1, 129 )
if @@error > 0 begin
--print 'bad insert...'
RAISERROR ('Bad insert....',16,1)
rollback TRANSACTION
return -1
END
else begin
print 'Good insert...'
commit TRANSACTION
return 0
end;
END

Por ahora estoy ejecutando el SP con el EMS-SQL
- Cuando ejecuto la primera vez - es todo correcto, incluyendo el mensaje 'Good insert...'
- Cuando doy por una segunda vez ( se sabe que ya existe ese registro ), no me imprime el error 'Bad Insert'...

Pero me emite un error en el mismo EMS-SQL asi:
Infracción de la restricción UNIQUE KEY 'aa_prueba_uq'. No se puede insertar una clave duplicada en el objeto 'aa_prueba'.
Se terminó la instrucción.

El error emitido por el EMS-SQL (que debo suponer que el sql le informa) es correcto... pero necesito que mi stored haga otro tipo de tareas despues del mensaje 'bad error'

Me ayudan?

Molusco
Responder Con Cita