Duda para Trigger INSTEAD OF

25/02/2004 - 19:21 por AC | Informe spam
Hola,

Para SQL2000.

Uso 'Trigger Instead Of Update' para efectuar una validaciones antes del
Update. Si pasan las validaciones efectúo el Update.

Problema que se me plantea: la relación entre la TABLA a actualizar,
INSERTED y DELETED. Los nuevos datos los tengo en la INSERTED y con ellos
efectúo el Update en TABLA, pero ¿ y si se ha realizado una modificación en
la Primary Key?

¿Cómo sé cuál es la correspondencia entre TABLA e INSERTED ? Insisto en que
sólo tengo el problema en el supuesto de que se ha podido modificar la
Primary Key y además el trigger se dispara para varias filas.

Creo que algo no lo he entendido bien o me falta imponer alguna condición.

Agradecería mucho cualquier comentario.

Saludos

AC

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
25/02/2004 - 19:56 | Informe spam
Hola!! las tablas Deleted e Inserted tienen la misma estructura que la tabla
en la que esta el Trigger!! bien

Sabiendo que en la Deleted estan los viejos Datos y en la inserted los
nuevos, en tu Where del update podrias hacer referencia a que actualice a
los registros que estan en Deleted con los Valores de Inserted!! me explico?


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"AC" escribió en el mensaje
news:c1ip38$en6$
Hola,

Para SQL2000.

Uso 'Trigger Instead Of Update' para efectuar una validaciones antes del
Update. Si pasan las validaciones efectúo el Update.

Problema que se me plantea: la relación entre la TABLA a actualizar,
INSERTED y DELETED. Los nuevos datos los tengo en la INSERTED y con ellos
efectúo el Update en TABLA, pero ¿ y si se ha realizado una modificación


en
la Primary Key?

¿Cómo sé cuál es la correspondencia entre TABLA e INSERTED ? Insisto en


que
sólo tengo el problema en el supuesto de que se ha podido modificar la
Primary Key y además el trigger se dispara para varias filas.

Creo que algo no lo he entendido bien o me falta imponer alguna condición.

Agradecería mucho cualquier comentario.

Saludos

AC







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
Respuesta Responder a este mensaje
#2 Maximiliano D. A.
25/02/2004 - 20:14 | Informe spam
Yo no tengo ese problema porque en todas mis tablas tengo un campo llamado
ROWID (identity) que solo lo uso como marcador, luego tengo mis Pkeys y todo
lo necesario ;-), entonces me es muy simple en los Triggers hacer estas
cosas porque el campo Rowid nunca cambia :-D, pero es como lo hago yo
nomas!! aca hay muchos que no les gusta esta idea ;-)


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"AC" escribió en el mensaje
news:c1ip38$en6$
Hola,

Para SQL2000.

Uso 'Trigger Instead Of Update' para efectuar una validaciones antes del
Update. Si pasan las validaciones efectúo el Update.

Problema que se me plantea: la relación entre la TABLA a actualizar,
INSERTED y DELETED. Los nuevos datos los tengo en la INSERTED y con ellos
efectúo el Update en TABLA, pero ¿ y si se ha realizado una modificación


en
la Primary Key?

¿Cómo sé cuál es la correspondencia entre TABLA e INSERTED ? Insisto en


que
sólo tengo el problema en el supuesto de que se ha podido modificar la
Primary Key y además el trigger se dispara para varias filas.

Creo que algo no lo he entendido bien o me falta imponer alguna condición.

Agradecería mucho cualquier comentario.

Saludos

AC







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
Respuesta Responder a este mensaje
#3 Miguel Egea
25/02/2004 - 22:57 | Informe spam
El propio sql tiene ese problema y lo resuelve de la siguiente forma. Si no
actualizas la pk (puedes comprobarlo de varias formas, ..) lanza un comando
de update tal cual. Sin embargo si lo que haces es lo que tu comentas, hace
un borrado primero de los elementos de la tabla deleted y después un insert
de los de la tabla inserted.
Hay varias formas de comprobarlo. Si usas replicación puedes ver que manda
dos comandos uno de insert y uno de delete, si no , con consultar el log
(sergio monteiro publicó ayer como verlo), puedes comprobar que es así.

Saludos cordiales
=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==
"AC" escribió en el mensaje
news:c1ip38$en6$
Hola,

Para SQL2000.

Uso 'Trigger Instead Of Update' para efectuar una validaciones antes del
Update. Si pasan las validaciones efectúo el Update.

Problema que se me plantea: la relación entre la TABLA a actualizar,
INSERTED y DELETED. Los nuevos datos los tengo en la INSERTED y con ellos
efectúo el Update en TABLA, pero ¿ y si se ha realizado una modificación


en
la Primary Key?

¿Cómo sé cuál es la correspondencia entre TABLA e INSERTED ? Insisto en


que
sólo tengo el problema en el supuesto de que se ha podido modificar la
Primary Key y además el trigger se dispara para varias filas.

Creo que algo no lo he entendido bien o me falta imponer alguna condición.

Agradecería mucho cualquier comentario.

Saludos

AC


Respuesta Responder a este mensaje
#4 Maximiliano Damian Accotto
25/02/2004 - 23:32 | Informe spam
Si!! o poner en cada tabla un campo identity solo como marcador cosa que
nunca cambiara el usuario por el Cliente y te armas el link sin problemas
;-), esto es para evitar el Delete Insert, pero claro debes poner un campo
identuty no!!

Bye


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Miguel Egea" escribió en el mensaje
news:uwBFjp%23%
El propio sql tiene ese problema y lo resuelve de la siguiente forma. Si


no
actualizas la pk (puedes comprobarlo de varias formas, ..) lanza un


comando
de update tal cual. Sin embargo si lo que haces es lo que tu comentas,


hace
un borrado primero de los elementos de la tabla deleted y después un


insert
de los de la tabla inserted.
Hay varias formas de comprobarlo. Si usas replicación puedes ver que manda
dos comandos uno de insert y uno de delete, si no , con consultar el log
(sergio monteiro publicó ayer como verlo), puedes comprobar que es así.

Saludos cordiales
=> Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad



http://www.microsoft.com/spain/tech...9-USER.asp
==>
"AC" escribió en el mensaje
news:c1ip38$en6$
> Hola,
>
> Para SQL2000.
>
> Uso 'Trigger Instead Of Update' para efectuar una validaciones antes del
> Update. Si pasan las validaciones efectúo el Update.
>
> Problema que se me plantea: la relación entre la TABLA a actualizar,
> INSERTED y DELETED. Los nuevos datos los tengo en la INSERTED y con


ellos
> efectúo el Update en TABLA, pero ¿ y si se ha realizado una modificación
en
> la Primary Key?
>
> ¿Cómo sé cuál es la correspondencia entre TABLA e INSERTED ? Insisto en
que
> sólo tengo el problema en el supuesto de que se ha podido modificar la
> Primary Key y además el trigger se dispara para varias filas.
>
> Creo que algo no lo he entendido bien o me falta imponer alguna


condición.
>
> Agradecería mucho cualquier comentario.
>
> Saludos
>
> AC
>
>


Respuesta Responder a este mensaje
#5 Miguel Egea
25/02/2004 - 23:49 | Informe spam
uff, lo que dices supone entrar en un debate que tuvimos hace tiempo y que
resumión bien carlos sacristan para la posteridad. Que si identity si que si
no.. :-), en ocasiones no puede cambiarse un diseño... en fin,... muchas
consideraciones, :-)


=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==

"Maximiliano Damian Accotto" escribió
en el mensaje news:O0UTz9%23%
Si!! o poner en cada tabla un campo identity solo como marcador cosa que
nunca cambiara el usuario por el Cliente y te armas el link sin problemas
;-), esto es para evitar el Delete Insert, pero claro debes poner un campo
identuty no!!

Bye


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Miguel Egea" escribió en el mensaje
news:uwBFjp%23%
> El propio sql tiene ese problema y lo resuelve de la siguiente forma. Si
no
> actualizas la pk (puedes comprobarlo de varias formas, ..) lanza un
comando
> de update tal cual. Sin embargo si lo que haces es lo que tu comentas,
hace
> un borrado primero de los elementos de la tabla deleted y después un
insert
> de los de la tabla inserted.
> Hay varias formas de comprobarlo. Si usas replicación puedes ver que


manda
> dos comandos uno de insert y uno de delete, si no , con consultar el log
> (sergio monteiro publicó ayer como verlo), puedes comprobar que es así.
>
> Saludos cordiales
> => > Miguel Egea
> http://www.portalsql.com
> Microsoft SQL-SERVER MVP.
> Brigada Anti-Cursores
> Aviso de Seguridad
>



http://www.microsoft.com/spain/tech...9-USER.asp
> ==> >
> "AC" escribió en el mensaje
> news:c1ip38$en6$
> > Hola,
> >
> > Para SQL2000.
> >
> > Uso 'Trigger Instead Of Update' para efectuar una validaciones antes


del
> > Update. Si pasan las validaciones efectúo el Update.
> >
> > Problema que se me plantea: la relación entre la TABLA a actualizar,
> > INSERTED y DELETED. Los nuevos datos los tengo en la INSERTED y con
ellos
> > efectúo el Update en TABLA, pero ¿ y si se ha realizado una


modificación
> en
> > la Primary Key?
> >
> > ¿Cómo sé cuál es la correspondencia entre TABLA e INSERTED ? Insisto


en
> que
> > sólo tengo el problema en el supuesto de que se ha podido modificar la
> > Primary Key y además el trigger se dispara para varias filas.
> >
> > Creo que algo no lo he entendido bien o me falta imponer alguna
condición.
> >
> > Agradecería mucho cualquier comentario.
> >
> > Saludos
> >
> > AC
> >
> >
>
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida