SQL Server - Trigger

 
Vista:

Trigger

Publicado por Chacal (1 intervención) el 15/06/2010 18:31:51
Amigos, tengo una consulta, soy nuevo en Sql Server, uso la versión 2000 y estaba haciendo un Trigger, de una base de un Video Club, que al querer insertar un alquiler y no existir el Cliente me sale un mensaje de error 'No existe ese Cliente!' y al insertar un alquiler a un cliente que existe me sale un mensaje de "insert correcto". Mi consulta es la siguiente: cuando hago el insert de un cliente que figura funciona bien! ahora si cargo un cliente que no existe me sale este error: "Mens. 547, Nivel 16, Estado 0, Línea 1
Instrucción INSERT en conflicto con la restricción FOREIGN KEY "FK_Cliente". El conflicto ha aparecido en la base de datos "videoClub", tabla "dbo.Cliente", column 'Id_cliente'.
Se terminó la instrucción."

Es decir no pasa por el PRINT 'No existe ese Cliente!' directamente me tira ese error. Cómo puedo hace para que salga mi error y no el del sql? que estoy haciendo mal? Desde ya gracias a todos!!!

CREATE TRIGGER check_CLIENTE
ON ALQUILER
FOR INSERT, UPDATE AS
IF NOT EXISTS (select * from CLIENTE, ALQUILER
where CLIENTE.Id_Cliente = ALQUILER.Id_Cliente)
BEGIN
PRINT 'No existe ese Cliente!'
ROLLBACK TRANSACTION
END
ELSE
PRINT 'insert correcto'
GO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Trigger

Publicado por Isaias (4558 intervenciones) el 15/06/2010 23:54:54
Chacal

Los triggers, no fueron para ser utiilzados en lo que tu necesitas, estos, los triggers, fueron creados para cuidar la integridad REFERENCIAL.

En todo caso, debes buscar ANTES el cliente y si no existe, enviar el mensaje de error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar