Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Añadiendo data en una columna con datos anteriores MS SQL

Estas en el tema de Añadiendo data en una columna con datos anteriores MS SQL en el foro de Bases de Datos General en Foros del Web. Hola chicos/as, Tengo una gran duda. Es posible en una base en MS SQL Server hacer un append o anadir a un campo tipo varchar ...
  #1 (permalink)  
Antiguo 05/01/2005, 08:41
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 22 años, 1 mes
Puntos: 5
Añadiendo data en una columna con datos anteriores MS SQL

Hola chicos/as,
Tengo una gran duda. Es posible en una base en MS SQL Server hacer un append o anadir a un campo tipo varchar mas datos?

O sea supongamos que tengo en una tabla los campos id, nombre y tema

id nombre tema
1 yani en el mar la vida es mas sabrosa
2 jose el cielo estrellado
3 omar el sol se disolvio


Y al correr unos procedimientos quiero que TEMA del numero 1 y numero 3 se le anada: totalmente!

Y la tabla mostrara entonces ahora esto:

id nombre tema
1 yani en el mar la vida es mas sabrosa totalmente!
2 jose el cielo estrellado
3 omar el sol se disolvio totalmente!

O sea quiero actualizar multiples filas anadiendoles nueva informacion pero no pasandole por encima a lo que estaba en ese campo.

Ojala me puedan ayudar, gracias.
__________________
Yanira
  #2 (permalink)  
Antiguo 05/01/2005, 20:00
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 7 meses
Puntos: 0
Para concatenar podes usar el +.
Es decir:
Código:
Update
     tabla
set
     tema + @texto
where
     id = 1
or  id = 3
El tema es el criterio que utilizas. Obviamente no queda bien que pongas que el id = 1 or id = 3. Por lo tanto podrías actualizar de a un registro y pasar como parametro el id.
Espero que te sirva.
__________________
Saludos,

Alejandro. :adios:
  #3 (permalink)  
Antiguo 06/01/2005, 07:27
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 22 años, 1 mes
Puntos: 5
gracias axel...lamentablemente esa solucion ya la habia contemplado y no funcionaria en este caso porque el tema es cambiante antes de ser actualizado para cada usuario. Pense en utilizar un cursor para que actualizara cada uno, pero al ser tan gran numero de usuarios, el desempeño de la actualizacion y del sistema se me afectaria demasiado...
__________________
Yanira
  #4 (permalink)  
Antiguo 06/01/2005, 08:02
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 7 meses
Puntos: 0
Mi segunda opción era precisamente que hagas un cursor. El problema es que no entiendo que queres hacer.
Te comento que una vez tuve que capitalizar unos registros con el SQL. Eran cerca de 20.000 registros y tardó algo así como 10 minutos capitalizando. Pero era algo que lo hacía una vez y listo, por más que tarde 1 hora. Hay que ver si en tu caso pasa algo parecido.
Espero tu respuesta asi entiendo bien que queres hacer.
__________________
Saludos,

Alejandro. :adios:
  #5 (permalink)  
Antiguo 06/01/2005, 14:16
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 22 años, 1 mes
Puntos: 5
Muchas gracias alejandro...
Si lamentablemente son alrededor de 50 mil registros que habria que actualizar a la vez, y serian aproximadamente 10 mil con algo y a la vez otros 20 mil con otro texto distinto actualizandose a la misma vez... Los cursores me matarian... Un caos al tener 400 administradores queriendo actualizar a la vez. Debo salir ahora mismo, pero intentare ser mas explicativa manana. gracias nuevamente por tu colaboracion.
__________________
Yanira
  #6 (permalink)  
Antiguo 06/01/2005, 16:08
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 8 meses
Puntos: 25
No veo que sea lo que no te sirva de:
Código:
Update
     tabla
set
     tema = tema + @texto
where
     id = 1
or  id = 3
Si lo explicas quiza te podamos ayudar mejor
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 06/01/2005, 19:30
Avatar de axel_mdq  
Fecha de Ingreso: mayo-2004
Ubicación: Mar del Plata
Mensajes: 157
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por Mithrandir
Código:
 tema = tema + @texto
jeje.. me habia olvidado el tema =...
Igual se entendió.
__________________
Saludos,

Alejandro. :adios:
  #8 (permalink)  
Antiguo 07/01/2005, 09:59
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 22 años, 1 mes
Puntos: 5
Gracias a ambos chicos...El problema es que a la misma vez que un administrador esta haciendo el load o actualizando el tema de varios usuarios, los usuarios a la vez estan actualizando ese campo desde otros formularios. Si le coloco un lock hmmm...ya hare una prueba a ver que tal...
__________________
Yanira
  #9 (permalink)  
Antiguo 07/01/2005, 17:29
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 8 meses
Puntos: 25
Los locks se ponen solos en SQL Server, al ser modificacion de toda la tabla te pondrá un lock excusivo de tabla completa.

Si son muchos registros puedes programar la sentencia en un Job para que se ejecute en la noche.

De cualquier manera revisa los hints por si quieres manejar los locks de forma manual
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #10 (permalink)  
Antiguo 07/01/2005, 23:02
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 22 años, 1 mes
Puntos: 5
Gracias Mithrandir, siempre he dejado que sea SQL quien trate los locks aun cuando se pueda hacer escalonado desde el registro hasta la tabla. Lo he pensado mas a nivel de la aplicacion, pero igual me crearia demasiada contencion. Parece que la unica alternativa por ahora que tengo es bloquear la entrada de usuarios si uno de los administradores esta actualizando los datos de esos usuarios, y cuando el administrador termine la transaccion, entonces cerrarla y abrirle paso a esos usuarios que estaban afuera...

La verdad me estoy bloqueando yo misma. Es la primera vez que me topo con algo asi y me esta dando dolor de cabeza... Que reto!!!

Gracias a ambos chicos por sus consejos
__________________
Yanira

Última edición por Yanix; 07/01/2005 a las 23:06
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:09.