Pregunta sobre UPDATE

15/11/2008 - 18:32 por Gilbert | Informe spam
pregunta sobre update y el orden de los sets

En este ejemplo

update tabla set campo1='1', campo2=dbo.funciondeusuario(campo1)
where condicion

Siempre el parametro a la funcion de usuario sera '1' ?
quiero decir que en el set de campo2 uno esta 100% seguro de que ya se ha
completado el set anterior (campo1='1') ?

gracias amigos

Preguntas similare

Leer las respuestas

#6 Gilbert
15/11/2008 - 20:10 | Informe spam
gracias!


"Ricardo Passians" escribió en
el mensaje news:%
Hola

y el update hace justo lo que me temía :(





Haz la prueba usando una variable intermedia:

declare @v char(1)

update tabla set @v = campo1 = '1', campo2=dbo.funciondeusuario( @v )
where condicion

Espero te sirva,

Saludos

Ricardo Passians



Respuesta Responder a este mensaje
#7 Carlos M. Calvelo
15/11/2008 - 20:22 | Informe spam
On 15 nov, 19:54, "Ricardo Passians"
wrote:
Hola



> y el update hace justo lo que me temía :(

Haz la prueba usando una variable intermedia:

declare @v char(1)

update tabla  set @v = campo1 = '1',  campo2=dbo.funciondeusuario( @v )
where condicion




Excelente Ricardo. Veo también que el resultado
no depende del orden.

Saludos,
Carlos
Respuesta Responder a este mensaje
#8 Carlos M. Calvelo
15/11/2008 - 20:39 | Informe spam
Hola Gilbert,

On 15 nov, 20:08, "Gilbert" wrote:
asi es aunque en realidad no lo expliqué bien porque simplifiqué mucho el
ejemplo ya que en vez de '1' lo que va es realmente un select para un
calculo en otra tabla y de ponerlo dos veces me lo ejecutaría dos veces.

update tabla   campo1 = (select (uncalculo) from tabla2 where cond),
campo2=dbo.funciondeusuario( campo1)
where condicion




Bueno Ricardo puso una buena solución.
En cuanto a repetir la misma subconsulta espero que
el optimizador pueda reconozer que es la misma
y la ejecute solo una vez;
Espero... porque no lo sé. Y aunque así sea con una
variable intermedia se ahorra uno repetir la consulta.

Saludos,
Carlos
Respuesta Responder a este mensaje
#9 Carlos M. Calvelo
15/11/2008 - 20:42 | Informe spam
... reconozer ...



zzzzzzzzzz!
Creo que es hora de ir a descansar un rato :-)
Respuesta Responder a este mensaje
#10 Ricardo Passians
15/11/2008 - 20:46 | Informe spam

Veo también que el resultado
no depende del orden.




Exactamente.

Saludos,

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