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

Pasar registros entre tablas

Estas en el tema de Pasar registros entre tablas en el foro de SQL Server en Foros del Web. Saludos compañeros Geeks… XD… discúlpenme si el mensaje es muy largo… trato de ser lo más explicito posible… primero que todo permítanme aclarar que soy ...
  #1 (permalink)  
Antiguo 06/01/2009, 10:19
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Pasar registros entre tablas

Saludos compañeros Geeks… XD… discúlpenme si el mensaje es muy largo… trato de ser lo más explicito posible… primero que todo permítanme aclarar que soy muy nuevo en esto de las BD (comencé a tocarlas desde principios de diciembre en un curso de verano de la U). Tengo unos problemillas con una base de datos, la cual fue hecha en SQL Server 2005. Esta BD es utilizada por una aplicación hecha en Visual Basic 6. La aplicación fue mejorada después de un buen tiempo de no tocarla. Con estas mejoras se incluían, modificaban y hasta eliminaban ciertas tablas de la BD. En una tabla tengo que insertar una columna en la segunda posición de arriba hacia abajo. Para agregarla lo que hago es presionar click derecho en la tabla (en el Microsoft SQL Server Management Studio) > Modificar, y una vez mostradas las columnas lo que hago es hacer click derecho donde quiero agregarla y después agregar columna. Coloco los datos (nombre, tipo, permite nulos). Cuando le doy guardar me tira un warning el cual dice: “Saving Definition Changes to tables with large amounts of data could take a considerable amount of time. While changes are being saved, table data will not be accessible”. Despues de darle “OK” a ese warning me tira un error: “Unable to modify table. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding”. La BD pesa casi los 4 GB y la tabla que trato de modificar posee casi 30mil registros. Estoy seguro que ese es el motivo por el cual da timeout. La pregunta es: cómo hago para modificar la tabla sin perder información ?. Lo que se me ocurre es hacer otra BD, crear una tabla con el script de CREATE TABLE de esta tabla, modificarla ahí y después pasar los datos. Como lo hago ?. Como puedo sacar todos los registros de la tabla para hacer esto ?. A la hora de pasar los datos se puede perder alguno si hago esto ?. Que otros caminos hay para hacer esto ?. Agradezco cualquier información que puedan brindarme, por pequeña que sea… por favor escriban, aunque sea para abuchearme… XD…
  #2 (permalink)  
Antiguo 06/01/2009, 10:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Pasar registros entre tablas

Primero, no tienes porque agregar las columnas en un cierto orden, SQL Server, no maneja el orden de las columnas.

Con esto, podrias insertar tu columna en la "ultima posicion" (ya dijimos que SQL Server no maneja posiciones en sus columnas), sin problema alguno.

Aun asi, si deseas que se vean en "cierta posicion", crea una tabla de paso, con tus columnas como las quieres ver y pasa los registros de tu tabla original.
  #3 (permalink)  
Antiguo 06/01/2009, 10:39
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: Pasar registros entre tablas

Puedes crear tablas al "vuelo" de la siguiente manera:

Código:
SELECT Campo1, Campo2, ..., CampoN
INTO otraTabla
FROM tuTabla
E incluso puedes cambiar los tipos de datos de los campos, por ejemplo.

Código:
SELECT Convert(varchar, Campo1) As Campo1, Campo2, ..., CampoN
INTO otraTabla
FROM tuTabla
O bien puedes crear tablas y pasar los registro de la siguiente manera

Código:
INSERT INTO  otraTablaX(Campo1, Campo2, ..., CampoN)
SELECT Campo1, Campo2, ..., CampoN
FROM tuTabla

Y por lo del tamaño de tu base de datos no te preocupes seguramente hay otras más grandes.

P.D. Deberías al menos separar tu texto en parrafos es algo díficil de leer.
  #4 (permalink)  
Antiguo 12/01/2009, 07:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Pasar registros entre tablas

Gracias daniel00 e iislas... lo estoy haciendo con INSERT INTO... pura vida compañeritos geeks... se los agradezco montones...
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 10:10.