Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/10/2004, 12:16
usecas
 
Fecha de Ingreso: noviembre-2003
Mensajes: 38
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola! Gracias a todos por participar!
Comparto con ustedes la investigacion que acabo de hacer:

USE pubs
GO
DECLARE @del_error int, @ins_error int, @valor char(100)
-- Comienza la transaccion
BEGIN TRAN

-- Comando Delete
DELETE authors
WHERE au_id = '409-56-7088'

-- No da error
SELECT @del_error = @@ERROR

-- Comando Insert
INSERT authors
VALUES('409-56-7008', 'Bennet', 'Abraham', '415 658-9932',
'6223 Bateman St.', 'Berkeley', 'CA', '94705', 1)

-- Ocurre un error, de clave duplicada
SELECT @ins_error = @@ERROR

-- Comprueba si existen errores
IF @del_error = 0 AND @ins_error = 0
BEGIN
IF @@ROWCOUNT = 0
SET @valor = 'No Actualizo Ningun Registro'
ELSE
SET @valor = 'La Informacion del Autor ha sido Reemplazada'

PRINT @valor
COMMIT TRAN
END
ELSE
BEGIN
/*
DECLARE @descrip as varchar(250)
SET @descrip = (SELECT description FROM master.dbo.sysmessages WHERE error=@del_error)
RAISERROR ('Error Numero:%d , Descripcion:%ls',16, 1, @ins_error,@descrip) WITH NOWAIT, SETERROR
*/
IF @del_error <> 0
SET @valor = 'Ha Ocurrido un Error durante la ejecucion del DELETE!'
PRINT @valor

IF @ins_error <> 0
SET @valor = 'Ha Ocurrido un Error durante la ejecucion del INSERT!'
PRINT @valor

ROLLBACK TRAN
END
GO

Esta bueno, me sirve! gracias por su apoyo. Que bueno es compartir el conocimiento!
Atte: Usecas