Query, update de una fila en otra

14/12/2009 - 15:27 por jose | Informe spam
Buenas, espero que puedan ayudarme con esta query.

tengo la sig. tabla

Id Valor (image)
1 0001
2 0002
3 0003
4 0004


Quisiera hacer un update para que Valor de Id tenga el valor de Id 3 y que
quede

Id Valor (image)
1 0001
2 0003
3 0003
4 0004

cómo puedo hacerlo?

gracias.

Preguntas similare

Leer las respuestas

#1 Aguardientico
15/12/2009 - 05:02 | Informe spam
Update tabla set valor = (select valor from tabla where id = 3) where id = 2

"jose" wrote in message
news:
Buenas, espero que puedan ayudarme con esta query.

tengo la sig. tabla

Id Valor (image)
1 0001
2 0002
3 0003
4 0004


Quisiera hacer un update para que Valor de Id tenga el valor de Id 3 y que
quede

Id Valor (image)
1 0001
2 0003
3 0003
4 0004

cómo puedo hacerlo?

gracias.

__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4688 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature database 4688 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Respuesta Responder a este mensaje
#2 jose
15/12/2009 - 14:39 | Informe spam
no se puede hacer eso.. es un campo image.

"Aguardientico" wrote:

Update tabla set valor = (select valor from tabla where id = 3) where id = 2

"jose" wrote in message
news:
> Buenas, espero que puedan ayudarme con esta query.
>
> tengo la sig. tabla
>
> Id Valor (image)
> 1 0001
> 2 0002
> 3 0003
> 4 0004
>
>
> Quisiera hacer un update para que Valor de Id tenga el valor de Id 3 y que
> quede
>
> Id Valor (image)
> 1 0001
> 2 0003
> 3 0003
> 4 0004
>
> cómo puedo hacerlo?
>
> gracias.
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4688 (20091215) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>

__________ Information from ESET NOD32 Antivirus, version of virus signature database 4688 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



.

Respuesta Responder a este mensaje
#3 Carlos Sacristan
15/12/2009 - 16:02 | Informe spam
Revisa las instrucciones UPDATETEXT y WRITETEXT en los BOL

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"jose" wrote in message
news:
no se puede hacer eso.. es un campo image.

"Aguardientico" wrote:

Update tabla set valor = (select valor from tabla where id = 3) where id
= 2

"jose" wrote in message
news:
> Buenas, espero que puedan ayudarme con esta query.
>
> tengo la sig. tabla
>
> Id Valor (image)
> 1 0001
> 2 0002
> 3 0003
> 4 0004
>
>
> Quisiera hacer un update para que Valor de Id tenga el valor de Id 3 y
> que
> quede
>
> Id Valor (image)
> 1 0001
> 2 0003
> 3 0003
> 4 0004
>
> cómo puedo hacerlo?
>
> gracias.
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4688 (20091215) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>

__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4688 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



.

Respuesta Responder a este mensaje
#4 Aguardientico
16/12/2009 - 04:34 | Informe spam
Lo siento, no tome en cuenta que decias que era image.

La sentencia entonces seria la siguiente (esto es mas o menos de memoria,
verifica y me avisas):

DECLARE @imagenFinal binary(16), @longitud int, @imagenACopiar binary(16)
SELECT @imagenACopiar=TEXTPTR(Valor), @longitud(Valor) from tabla where id =
3
SELECT @imagenFinal + TEXTPTR(Valor) from tabla where id = 2
WRITETEXT tabla.Valor @imagenFinal (READTEXT tabla.Valor @imagenFinal 1
@longitud)

En realidad como te lo estoy poniendo no es la forma más eficiente de
hacerlo pero creo que funciona.

La mejor forma es leyendo de poco en poco (aconsejable en multiplos de algo
asi como 8048 (no me acuerdo de memoria)) utilizando un while.


"jose" wrote in message
news:
no se puede hacer eso.. es un campo image.

"Aguardientico" wrote:

Update tabla set valor = (select valor from tabla where id = 3) where id
= 2

"jose" wrote in message
news:
> Buenas, espero que puedan ayudarme con esta query.
>
> tengo la sig. tabla
>
> Id Valor (image)
> 1 0001
> 2 0002
> 3 0003
> 4 0004
>
>
> Quisiera hacer un update para que Valor de Id tenga el valor de Id 3 y
> que
> quede
>
> Id Valor (image)
> 1 0001
> 2 0003
> 3 0003
> 4 0004
>
> cómo puedo hacerlo?
>
> gracias.
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4688 (20091215) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>

__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4688 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



.

Respuesta Responder a este mensaje
#5 Aguardientico
16/12/2009 - 04:59 | Informe spam
Me puse a leer un poco (recordando como hacer esto) y la forma mas facil de
hacerlo es la siguiente:

UPDATE tabla SET valor = (SELECT SUBSTRING(valor, 1, DATALENGTH(valor)) FROM
tabla where id = 3) where id = 2

"Aguardientico" <gusgon1 at nospam dot com> wrote in message
news:
Lo siento, no tome en cuenta que decias que era image.

La sentencia entonces seria la siguiente (esto es mas o menos de memoria,
verifica y me avisas):

DECLARE @imagenFinal binary(16), @longitud int, @imagenACopiar binary(16)
SELECT @imagenACopiar=TEXTPTR(Valor), @longitud(Valor) from tabla where id
= 3
SELECT @imagenFinal + TEXTPTR(Valor) from tabla where id = 2
WRITETEXT tabla.Valor @imagenFinal (READTEXT tabla.Valor @imagenFinal 1
@longitud)

En realidad como te lo estoy poniendo no es la forma más eficiente de
hacerlo pero creo que funciona.

La mejor forma es leyendo de poco en poco (aconsejable en multiplos de
algo asi como 8048 (no me acuerdo de memoria)) utilizando un while.


"jose" wrote in message
news:
no se puede hacer eso.. es un campo image.

"Aguardientico" wrote:

Update tabla set valor = (select valor from tabla where id = 3) where id
= 2

"jose" wrote in message
news:
> Buenas, espero que puedan ayudarme con esta query.
>
> tengo la sig. tabla
>
> Id Valor (image)
> 1 0001
> 2 0002
> 3 0003
> 4 0004
>
>
> Quisiera hacer un update para que Valor de Id tenga el valor de Id 3 y
> que
> quede
>
> Id Valor (image)
> 1 0001
> 2 0003
> 3 0003
> 4 0004
>
> cómo puedo hacerlo?
>
> gracias.
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 4688 (20091215) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>

__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4688 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



.






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4691 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature database 4691 (20091215) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida