Y si quiero copiar varios registros
Ahí lo único que tienes que resolver a que 100 registros te refieres.
Una alternativa es que sean lo primeros 100 de algún orden (requerido). Supongamos que la tabla tiene un campo llamado "ID", se puede poner
SELECT * TOP 100 FROM EsaTabla ORDER BY ID INTO CURSOR PASE
Otra, es tomar los 100 primeros registros físicos de la tabla:
SELECT * FROM TalTabla WHERE RECNO()<101 INTO CURSOR pase
Otra es tomar los últimos 100 registros. Por ejemplo, si la tabla se llama "Clientes"
lnRecords=100
lnLast=Reccount("CLIENTES")
lnIni=lnLast - lnRecords + 1
SELECT * FROM CLIENTES WHERE RECNO() BETWEEN lnIni AND lnLast INTO CURSOR pase
Y todas las otras formas que puedas imaginarte.
En algunos casos puede resultar más práctico generar un cursor vacío y llenarlo con un scan / endscan
Supongamos que queremos tomar todos los que tienen algún valor en el campo ID y que fueron ingresados entre dos fechas y que a la vez, no sean más que 100. Si el campo que tiene la fecha de actualización se llama "fegraba"
ldFeIni=Date(2013,7,1)
ldFeFin=Date(2013,12,31)
lnCount=0
SELECT * FROM CLIENTES WHERE .F. INTO CURSOR PASE
SELECT CLIENTES
SCAN FOR !EMPTY(ID) AND BETWEEN(FEGRABA,ldFeIni , ldFeFin )
SCATTER TO gaPase
INSERT INTO PASE FROM ARRAY gaPase
lnCount= lnCount + 1
IF lnCount > 100
exit
ENDIF
ENDSCAN
? "Registros pasados "+transform(lnCount)