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

Tarea de desplazamiento de información entre tablas

Estas en el tema de Tarea de desplazamiento de información entre tablas en el foro de SQL Server en Foros del Web. Hola Necesito realizar una tarea en SQL Server y me han dicho que use un cursor aunque no sé si es la mejor manera de ...
  #1 (permalink)  
Antiguo 07/09/2015, 10:15
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Tarea de desplazamiento de información entre tablas

Hola

Necesito realizar una tarea en SQL Server y me han dicho que use un cursor aunque no sé si es la mejor manera de hacerlo, a ver si alguien puede ayudarme, de antemano muchas gracias

En mi caso, tengo 6 tablas de la facturación de los últimos 6 meses, una tabla por cada mes. Son tablas de históricos, la idea que por cada mes que pase, tengo que desplazar la información de una tabla a la anterior y la información de la más antigua, eliminarla. También tendría que hacer varios cambios de datos, por ejemplo si un registro tiene un valor cero en el precio de todas las tablas, tengo que eliminarlo de todas ellas.

Muchas gracias
  #2 (permalink)  
Antiguo 07/09/2015, 12:47
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Tarea de desplazamiento de información entre tablas

Para empezar una tabla por cada mes?? que tipo de estructura es esa?? no seria manejar toda la informacion en una sola tabla? ahora para hacer lo que necesitas no es necesario un cursor ni son necesarias 6 tablas..........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 07/09/2015, 14:57
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Tarea de desplazamiento de información entre tablas

Estoy de acuerdo con libra, para que tener 6 tablas??

La estructura de las tablas es exactamente la misma, mismos campos?, mismo tipo de dato?.


Si es el caso con una tabla es suficiente, y solo deberías manejar un campo "Fecha" para controlar lo de los meses....

Si aun asi quieres hacer el recorrido:
-Comienza eliminando la ultima tabla.
- Despues has: INSERT INTO tablaMes6 SELECT * FROM tablaMes5
....
Y asi consecutivamente puedes manejar un store procedure para eso o hacer las consultas a mano...


Pero si tienes que revisar esa estructura de las tablas!!!!!
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #4 (permalink)  
Antiguo 08/09/2015, 00:57
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Tarea de desplazamiento de información entre tablas

Hola

Si, podéis tener razón que no tiene sentido tener 6 tablas, pero el caso es que quieren que haya 6 tablas, el motivo? no lo sé, jaja.

Mi duda es más bien si hay que hacer algún proceso complejo o no, me comentaron que realizara un cursor para ejecutarlo y por otro lado según mis conocimientos pensaba que con unos inserts y unos deletes varios entre tablas ya valdría.

Por ejemplo tengo que eliminar los registros que sean igual a 0 en todas las tablas. Que me recomendáis para este caso? Como lo haríais?

Gracias por la ayuda

Última edición por elibio19; 08/09/2015 a las 01:18
  #5 (permalink)  
Antiguo 08/09/2015, 07:42
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Tarea de desplazamiento de información entre tablas

Primero que digas que tener 6 tablas es una muy mala desicion del lado de base de datos, ya que si quieres trabajar asi pues adelante....


ahora para tu duda no ocupas hacer un proceso demasiado complejo por ejemplo para borrar todo lo que tengas que sea con un valor a 0 seria

delete from tabla1 where value=0
delete from tabla2 where value=0
delete from tabla3 where value=0
.
.
.
delete from tablaN where value=0


y listo no tienes que recorrer la tabal valor por valor para hacer eso, ya que si quieres hacer un proceso mas complejo podrias meterte con queries dinamicos y tener los nombres de tu tabla en algun lugar y hacer el recorrido valor por valor, pero no le veo el caso de hacer eso, como bien te comentaron seria mejor hacer un procedure con lo que necesitas y listo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: desplazamiento, server, sql, tabla, tablas, tarea
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 21:19.