FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como copiar un registro en la misma tabla...
Hola amigos, estoy terminando un proyecto y revisando me encontre con que me faltaba algo para terminar.....necesito copiar un registro de una tabla dentro de una misma tabla , claro que cambiandole la clave principal, intente mezclando un insert con select pero no llegue muy lejos, si alguien fuera tan amable de guiarme un poco en esto le agradeceria mucho....
Ejemplo tabla codigo1 nombre 1 apellido1 //registro codigo2 nombre 1 apellido 1 //el registro copiado Gracias.....
__________________
[Lo que a veces es tan facil, a veces parece imposible] |
#2
|
||||
|
||||
Tan simple como hacer:
insert into tabla (campo1, campo2, .... campon) select campo1, campo2, .... campon from tabla
__________________
Héctor Geraldino Software Engineer |
#3
|
|||
|
|||
Gracias........... me ha sido de utilidad para entender el concepto.... pero el problema es que al realizarlo de esa manera copia el registro completo con la misma clave principal..... y ahi no se como poder cambiarla sin tener que escribir en la sentencia los 120 campos de la tabla...
__________________
[Lo que a veces es tan facil, a veces parece imposible] Última edición por ilichhernandez fecha: 18-12-2005 a las 22:52:57. |
#4
|
||||
|
||||
lo que podes hacer, si tenes que copiar la totalidad de los campo, es contar los campos que tenes en la tabla y en el select incrementar el codigo con la cantidad total de registros.
Código:
query1.sql.clear; query1.sql.add('SELECT COUNT(*) AS cantidad FROM tabla'); query1.Active := true; cantidad := query1.FieldByName('cantidad').AsInteger; query1.sql.clear; query1.sql.add('INSERT INTO tabla SELECT codigo+'+InttoStr(cantidad)+' AS codigo, campo2 FROM tabla'); query1.ExecSQL; |
|
|
|