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

#1 Carlos M. Calvelo
15/11/2008 - 19:24 | Informe spam
Hola Gilbert,

On 15 nov, 18:32, "Gilbert" wrote:
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') ?




Espero que esto responda tu pregunta:

declare @t table (campo1 char(1),campo2 char(1))
insert into @t (campo1,campo2) values ('a', 'b')
update @t set campo1='1', campo2=campo1
select * from @t

Y de paso te dé también una idea de como puedes
responderte a ti mismo preguntas y dudas de ese tipo :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Gilbert
15/11/2008 - 19:36 | Informe spam
gracias, es q soy newbie.

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


"Carlos M. Calvelo" escribió en el mensaje
news:
Hola Gilbert,

On 15 nov, 18:32, "Gilbert" wrote:
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') ?




Espero que esto responda tu pregunta:

declare @t table (campo1 char(1),campo2 char(1))
insert into @t (campo1,campo2) values ('a', 'b')
update @t set campo1='1', campo2=campo1
select * from @t

Y de paso te dé también una idea de como puedes
responderte a ti mismo preguntas y dudas de ese tipo :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#3 Ricardo Passians
15/11/2008 - 19:54 | Informe spam
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
#4 Carlos M. Calvelo
15/11/2008 - 19:54 | Informe spam
On 15 nov, 19:36, "Gilbert" wrote:
gracias, es q soy newbie.

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




Pero eso tampoco es un problema. Si sabes que expresión
tienes que evaluar para asignar un valor a campo1, también
la puedes utilizar para pasarle el parámetro a la función.

Saludos,
Carlos
Respuesta Responder a este mensaje
#5 Gilbert
15/11/2008 - 20:08 | Informe spam
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


"Carlos M. Calvelo" escribió en el mensaje
news:
On 15 nov, 19:36, "Gilbert" wrote:
gracias, es q soy newbie.

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




Pero eso tampoco es un problema. Si sabes que expresión
tienes que evaluar para asignar un valor a campo1, también
la puedes utilizar para pasarle el parámetro a la función.

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