UPDATE Multifuncional

16/05/2005 - 21:44 por Luis Nivar | Informe spam
Saludos amigos.

estoy armando un trigger donde en dos instrucciones requiero algo como
estoe:

UPDATE mitabla set
@valorfinal=mitabla.valorfinal=mitabla.valorfinal+inserted.valor
from mitabla inner join inserted on mitabla.campopk= inserted.fk

/*luego debo sacar el valor inicial de la misma tabla para compararlo*/
select @valorinicial=mitabla.valorinicial
from mitabla inner join inserted on mitabla.campopk= inserted.fk

/*la idea es comparar el valorinicial con el valorfinal calculado*/
IF @valorinicial > @valorfinal
raiserror(.


Pero viendo mejor las cosas se me ha ocurrido reducirlo a un update unico:

UPDATE mitabla set
@valorfinal=mitabla.valorfinal=mitabla.valorfinal+inserted.valor ,
@valorinicial=mitabla.valorinicial
from mitabla inner join inserted on mitabla.campopk= inserted.fk

/*lo demas igual*/
IF @valorinicial > @valorfinal
raiserror(.


Y me sorprendo de que me lo compila y no me da ningun error y en las
pruebas aparentemente funciona bien. Que opinion tienen ustedes ? Es
realmente mas eficiente considerando que son tablas muy grandes ? Es
correcto hacer eso asi y no da problemas ? Si se fijan la segunda expresion
en el SET es una simple asignacion a una variable
@valorinicial=mitabla.valorinicial (sorprendentemente lo acepta) y
poniendolo asi @valorinicial=mitabla.valorinicial=mitabla.valorinicial
tambien me lo aceptaría obteniendo el mismo efecto.


Que creen de eso?

LN
 

Leer las respuestas

#1 Isaias Islas
16/05/2005 - 21:50 | Informe spam
Roberto

Seria conveniente que nos dijeras QUE QUIERES LOGRARAlgo asi.

Amigos, quiero hacer esto, bla, bla, bla, bla.

Para lo cual ocupo el siguiente codigo:

Codigo

Preguntas similares