Cómo eliminar registros con números de identificador idéntico desde dos tablas

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 126272
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Resumen
En este artículo se muestra por ejemplo cómo eliminar registros que comparten el mismo número de identificación y existen en dos tablas distintas.

Puede utilizar este método para eliminar duplicados que existen en dos tablas independientes, pero igualmente definidas. O bien, puede utilizarlo, por ejemplo, para eliminar a un cliente de su sistema cuando ese cliente tiene registros de una tabla principal y tablas de transacciones. Por ejemplo, podría desea crear una tabla temporal que se rellena con números de cliente que se va a eliminar. A continuación, utilice uno de los métodos en este artículo para marcar los duplicados para su eliminación de las tablas principal y la transacción.
Más información
Los siguientes dos métodos marca registros duplicados en CUSTOMER.DBF para su eliminación, por lo tanto, asegúrese de que una copia de seguridad de CUSTOMER.DBF.
  • Digitalizar... ENDSCAN bucle método.
  • Método de comando SET RELATION.
Para mostrar estas técnicas, deberá crear una tabla que contiene registros duplicados. Emita los siguientes comandos para crear un archivo de tabla e índice de práctica desde la tabla CUSTOMER.DBF:
   IF _MAC=.T.      SET DEFAULT TO "Hard drive:FoxPro 2.6:Tutorial:"   ELSE      SET DEFAULT TO Sys(2004)+"Tutorial"      && SET DEFAULT TO SYS(2004)+"Samples\Data" in Visual FoxPro   ENDIF   USE CUSTOMER.DBF   COPY TO TEST.DBF FOR RECNO() < 10   USE TEST   INDEX ON cno TAG cno ADDITIVE   && INDEX on cust_id TAG custid ADDITIVE in Visual FoxPro				
TEST.DBF la tabla ahora contiene registros de la tabla CUSTOMER.DBF. Estos registros actúan como los registros duplicados de los ejemplos enumerados. También existe un índice .cdx para el TEST.DBF.

Método 1: Digitalizar... rutina ENDSCAN bucle para buscar duplicados de registros

El programa siguiente busca en el archivo TEST.DBF y marca los registros duplicados en CUSTOMER.DBF para su eliminación:
   USE Customer IN 0   USE Test IN 0 ORDER TAG CNO   SELECT Customer   SCAN   m.cno=cno   && m.custid=cust_id in Visual FoxPro   SELECT Test   SEEK(m.cno)   && SEEK (m.custid) in Visual FoxPro   IF FOUND()= .T.      SELECT Customer      DELETE   ENDIF   SELECT Customer   ENDSCAN				

Segundo método: SET RELATION y el método de función Found()

Este método establece una relación uno a uno entre las dos tablas. Después de establecer la relación, el comando DELETE se desplaza por la tabla cliente comparar registros con los de la tabla de prueba. Si la función Found() devuelve el valor lógico true, DELETE marca el registro coincidente en CUSTOMER.DBF. Después de ejecutar este código, se eliminan los nueve primeros registros en la tabla cliente.
   USE Customer.dbf in 0   USE Test.dbf IN 0 ORDER TAG cno   SELECT Customer   SET RELATION TO cno INTO Test ADDITIVE   DELETE ALL FOR FOUND('Test')				
VFoxWin FoxWin FoxDos FoxMac

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 126272 - Última revisión: 02/21/2014 23:02:52 - Revisión: 2.1

Microsoft Visual FoxPro 3.0 Standard Edition, Microsoft FoxPro 2.5b, Microsoft FoxPro 2.5a, Microsoft FoxPro 2.5b, Microsoft FoxPro 2.6 Standard Edition, Microsoft FoxPro 2.6a Standard Edition, Microsoft FoxPro 2.5b for MS-DOS, Microsoft FoxPro 2.5a, Microsoft FoxPro 2.5b for MS-DOS, Microsoft FoxPro 2.6 para MS-DOS, Microsoft FoxPro 2.6a Standard Edition, Microsoft Visual FoxPro 2.5b para Macintosh, Microsoft Visual FoxPro 2.5c para Macintosh, Microsoft FoxPro 2.6a Professional Edition for Macintosh

  • kbnosurvey kbarchive kbmt kbcode KB126272 KbMtes
Comentarios