Mas preguntas sobre triggers

17/06/2004 - 19:14 por Leonardo Azpurua | Informe spam
Peleando con el trigger que inclui en un mensaje hace un momento, me di
cuenta de que llamar a RAISERROR no detiene la ejecución del procedimiento
(ni producen una excepcion en VB.Net).

Puede tener algo que ver con el Nivel del error.

¿Cual es el mecanismo correcto para que bajo determinada circunstancia el
trigger aborte y se devuelva un estatus de error a la aplicación cliente?

Salud!

Leonardo
[MVP Visual Basic]
[Maicrosoft LVP - MOP Certified]
leonardo<arroba>mvps<punto>org
 

Leer las respuestas

#1 Fernando España
17/06/2004 - 19:45 | Informe spam
U na pequeña idea de como controlarlo





/* Delete Trigger 'T_D_tbl_propiedades_productos' for Table
'tbl_propiedades_productos' */

CREATE TRIGGER T_D_tbl_propiedades_productos ON tbl_propiedades_productos
FOR DELETE AS

BEGIN
DECLARE
@row_count INT,
@error_number INT,
@error_message VARCHAR(255)

SELECT @row_count = @@rowcount
IF @row_count = 0
RETURN

/* No se pueden eliminar propiedades de productos si ya tiene Familias
Asignadas*/

IF EXISTS (
SELECT 1
FROM tbl_propiedades_por_familia c, deleted d
WHERE c.id_empresa = d.id_empresa AND
c.id_propiedad = d.id_propiedad
)
BEGIN
SELECT @error_number0005,
@error_message='Existen detalles en propiedades por familia
de productos, no puede eliminar esta propiedad'
GOTO error
END
RETURN

/* Error Handling */
error:
RAISERROR @error_number @error_message
ROLLBACK TRANSACTION
END
go





Fernando España
Gerente Informatica
Alta Tecnologia en Informatica S.A.
www.atisa.com.gt
7a. calle 4-34 Zona 10
Guatemala Centro America
PBX: (502) 3620005

Email:

****************************************

"Leonardo Azpurua" <l e o n a r d o (arroba) m v p s (punto) o r g> escribió
en el mensaje news:
Peleando con el trigger que inclui en un mensaje hace un momento, me di
cuenta de que llamar a RAISERROR no detiene la ejecución del procedimiento
(ni producen una excepcion en VB.Net).

Puede tener algo que ver con el Nivel del error.

¿Cual es el mecanismo correcto para que bajo determinada circunstancia el
trigger aborte y se devuelva un estatus de error a la aplicación cliente?

Salud!

Leonardo
[MVP Visual Basic]
[Maicrosoft LVP - MOP Certified]
leonardo<arroba>mvps<punto>org


Preguntas similares