| |||
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… |
| |||
Respuesta: Pasar registros entre tablas Puedes crear tablas al "vuelo" de la siguiente manera:
Código:
E incluso puedes cambiar los tipos de datos de los campos, por ejemplo.SELECT Campo1, Campo2, ..., CampoN INTO otraTabla FROM tuTabla
Código:
O bien puedes crear tablas y pasar los registro de la siguiente maneraSELECT Convert(varchar, Campo1) As Campo1, Campo2, ..., CampoN INTO otraTabla FROM tuTabla
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. |