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$
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
Respuesta Responder a este mensaje
#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$
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
Respuesta Responder a este mensaje
#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

hazlo en los dos sitios..

Saludos
Miguel Egea
"luis_mtz" escribió


en el mensaje
news:145301c4def5$3f2b1b80$
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




.

Respuesta Responder a este mensaje
#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



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
.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida