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

Seleccione idioma Seleccione idioma
Id. de artículo: 126272 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

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')
				

Propiedades

Id. de artículo: 126272 - Última revisión: viernes, 21 de febrero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbnosurvey kbarchive kbmt kbcode KB126272 KbMtes
Traducción automática
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

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com