Como hago este trigger?

08/07/2009 - 11:09 por Paul | Informe spam
Hola

Quiero hacer un trigger,donde se compruebe que el valor introducido en
un campo de luna tabla exista en otra tabla.Quiero hacer el trigger no
vale decir que haga una relacion qcon integridad referencial.

Hago algo como esto:

SELECT IdCli FROM Inserted WHERE IdCli NOT IN (SELECT Id FROM Cliente)

Pero como hago para decir que la cosulta anterior sea vacia?

Gracias
 

Leer las respuestas

#1 Carlos Sacristan
08/07/2009 - 11:22 | Informe spam
¿Y por qué no quieres que se haga mediante integridad referencial? Es más
eficiente...

En cualquier caso, sería algo como...

IF EXISTS(SELECT 1 FROM inserted i LEFT JOIN clientes c ON i.IdCli=c.IdCli
WHERE c.IdCli IS NULL)
BEGIN
RAISERROR('Clientes inexistentes', 16, 1);
ROLLBACK;
RETURN -1;
END

No entiendo qué quieres decir con lo de "como hago para decir que la cosulta
anterior sea vacia?"

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil. si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba
"Paul" wrote in message
news:
Hola

Quiero hacer un trigger,donde se compruebe que el valor introducido en
un campo de luna tabla exista en otra tabla.Quiero hacer el trigger no
vale decir que haga una relacion qcon integridad referencial.

Hago algo como esto:

SELECT IdCli FROM Inserted WHERE IdCli NOT IN (SELECT Id FROM Cliente)

Pero como hago para decir que la cosulta anterior sea vacia?

Gracias

Preguntas similares