INSERT y Trigger INSTEAD OF

10/12/2004 - 21:17 por luis_mtz | Informe spam
Saludos

Tengo un dilema, tengo en un procedure el siguiente
codigo...

INSERT INTO dbo.movdet
(mdt_cla,mov_cla, art_cla)
VALUES (@lnid,@movcla, @artcla)
SELECT @lnerr = @@error IF @lnerr <> 0 BEGIN ROLLBACK
TRANSACTION RETURN END

en la Tabla movdet tengo un TRIGGER INSTEAD OF INSERT con
el siguiente codigo..

INSERT INTO movdet (mov_cla,art_cla)
SELECT i.mov_cla,i.art_cla
FROM inserted i INNER JOIN movimiento a ON
i.mov_cla=a.mov_cla

(Para fin de simplificar no puse el resto de los campos en
la consulta, pero si es necesario el INNER JOIN, y
basicamente el INSERT es lo unico del trigger)

En el procedure reviso @@error si es que existe algun
error, en el TRIGGER no lo reviso. pregunta.. Es
suficiente con la revision que hago en el procedure, o es
necesario tambien hacer en el trigger, notar que en
procedure en caso de error hago un rollback.

Saludos.

luis_mtz

Preguntas similare

Leer las respuestas

#1 Maxi
10/12/2004 - 21:21 | Informe spam
Hola, con que lo hagas en el SP esta bien, de todas formas podrias hacerlo
todo en el trigger y nada en el SP ;)


Salu2
Maxi


"luis_mtz" escribió en el mensaje
news:145301c4def5$3f2b1b80$
Mostrar la cita
#2 Miguel Egea
11/12/2004 - 23:54 | Informe spam
hazlo en los dos sitios..

Saludos
Miguel Egea
"luis_mtz" escribió en el mensaje
news:145301c4def5$3f2b1b80$
Mostrar la cita
#3 luis_mtz
12/12/2004 - 00:17 | Informe spam
hay un dicho que dice 2 es mejor que 1; pero bueno ademas
de esto puedo tener tu opinion en cuanto a poner la
verificacion de error en ambos lados (procedure y
trigger)...

gracias.

luis_mtz

Mostrar la cita
en el mensaje
Mostrar la cita
con
Mostrar la cita
en
Mostrar la cita
es
Mostrar la cita
#4 luis_mtz
12/12/2004 - 00:31 | Informe spam
me surge una nueva duda, en el procedure verifico si
ocurre error despues del INSERT, notar que lo guardo en
@lnerr quien es una variable OUTPUT en el procedure. No me
queda claro que valor tomara @lnerr si el error ocurre en
el INSERT que esta ubicado en el TRIGGER INSTEAD. La idea
de plantear mi codigo TSQL es que cuando llame al
procedure pueda revisar si el parametro @lnerr trae error,
mi idea es que si me devolveria el @@error aun cuando este
ocurra en el TRIGGER INSTEAD. Por el contrario como podria
tomar el valor de @@error en el TRIGGER INSTEAD, para
pasarlo al PROCEDURE, y este pueda regresar el valor en el
parametro @lnerr.

Gracias.
luis_mtz



Mostrar la cita
en
Mostrar la cita
Ads by Google
Search Busqueda sugerida