Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-02-2008
jadamezs jadamezs is offline
Registrado
 
Registrado: feb 2008
Posts: 2
Poder: 0
jadamezs Va por buen camino
Agragar datos de un tabla en otra sin duplicar los datos

Tengo una tabla listado y quiero copiar en dicha tabla los datos de otra tabla llamada listados2 pero que no se repita ninguno de los campos. Las tablas no tienen ninguna clave primaria y tienen los mismos campos.

Saludos
Responder Con Cita
  #2  
Antiguo 06-02-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que lo más eficiente es que utilices claves primarias o índices únicos. Las demás opciones son "inventos" y bajarán la eficiencia con respecto a esta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 07-02-2008
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
El comentario de Neftali es por demás acertado, hablando de métodos para asegurarte de no insertar registros duplicados, pero creo que jadamezs se refiere a un método para copiar información de una tabla "T1" a otra "T2" sin que se repitan registros en la tabla destino, es así jadamezs?
Responder Con Cita
  #4  
Antiguo 07-02-2008
jadamezs jadamezs is offline
Registrado
 
Registrado: feb 2008
Posts: 2
Poder: 0
jadamezs Va por buen camino
Efectivamente pero creo que ya se como se hace
insert into listados1 select * from listados2 where campo1 not in (select campo1 from listados1)
Responder Con Cita
  #5  
Antiguo 07-02-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No tengo claro que eso funcione, ni lo eficiente que puede ser con bastantes registros; De todas formas en tu mensaje inicial dices que no se repita "ninguno de los campos". En este caso sólo lo estás haciendo para "Campo1".
No entiendo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 07-02-2008
sinalocarlos sinalocarlos is offline
Miembro
 
Registrado: sep 2006
Posts: 152
Poder: 18
sinalocarlos Va por buen camino
mmm, me perdí, me imaginaba yo que lo que necesitabas hacer es dada una tabla "tablaUno" insertarle información de otra,llamemosla "tablaDos" que tienen los mismos campos, pero como dices: "pero que no se repita ninguno de los campos" imagine que tenias registros repetidos, es decir, con información idéntica en todos los campos, al ver tu script veo que solo validas uno, en todo caso pensare que es solo un ejemplo para mostrarnos como lo harías, pero como comenta Neftali el rendimiento bajara considerablemente si pretendes hacer eso continuamente, una forma sencilla de hacerlo es:

Código SQL [-]
insert into tablaUno (c1,c2,c4,c4,c5)
select c1,c2,c4,c4,c5 from tablaDos left outer join tablaUno on 
tablaDos.c1 =  tablaUno.c1 and tablaDos.c2 =  tablaUno.c2 --tantos como quieras validar
where tablaUno.c1 IS NULL group by c1,c2,c4,c4,c5


básicamente estamos filtrando los registros a insertar en base a la tabla destino y agrupándolos para que no te generen repetidos

eso era o sigo perdido?

Última edición por sinalocarlos fecha: 07-02-2008 a las 17:41:34. Razón: no me quedaron bien las etiquetas de sql
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar tabla con datos de otra tabla mediante UPDATE Rockin Firebird e Interbase 18 28-11-2007 19:15:42
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
actualizar datos de una tabla según datos de otra. GustavoCruz SQL 10 01-06-2007 23:18:44
Copiar datos y Duplicar Tabla andresenlared MS SQL Server 1 10-05-2007 00:51:21
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 15:36:12


La franja horaria es GMT +2. Ahora son las 23:21:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi