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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Paul
08/07/2009 - 13:12 | Informe spam
On 8 jul, 11:22, "Carlos Sacristan" wrote:
¿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/elrincon...Paul" wrote in message



Muchas gracias

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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida