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$
Mostrar la cita
en
Mostrar la cita
que
Mostrar la cita
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
#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$
Mostrar la cita
en
Mostrar la cita
que
Mostrar la cita
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
#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$
Mostrar la cita
en
Mostrar la cita
que
Mostrar la cita
#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%
Mostrar la cita
no
Mostrar la cita
comando
Mostrar la cita
hace
Mostrar la cita
insert
Mostrar la cita
http://www.microsoft.com/spain/tech...9-USER.asp
Mostrar la cita
ellos
Mostrar la cita
condición.
Mostrar la cita
#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%
Mostrar la cita
manda
Mostrar la cita
http://www.microsoft.com/spain/tech...9-USER.asp
Mostrar la cita
del
Mostrar la cita
modificación
Mostrar la cita
en
Mostrar la cita
Ads by Google
Search Busqueda sugerida