VFP6 doesn't support Insert SQL, so you have to do it in two steps...
>hello all --
>
>say i have 2 tables (with the same structure of course) called
>X_USER and X_GENERIC. say they have a unique (PK) field called
>"code".
>
>at some point, X_USER has copies of some of the records that are
>(still) in X_GENERIC. (after i copied records into X_USER, i
>modified them, and don't want to lose my changes).
>
>how (hopefully in a single statement, without using a bunch of
>temporary tables) can i get the records from X_GENERIC, that are
>not already in X_USER (determined by PK) and add them to X_USER,
>without overwriting X_USER.
>
>i looked into APPEND FROM, but the FOR clause doesn't allow
>SQL style WHERE condition. (see below)
>
>i looked into SELECT-SQL, but it overwrites the entire table.
>
>here is my most recent attempt, which does not add any records,
>even tho new records are in X_GENERIC.
>
>
> SELECT 0
> USE (X_GENERIC_Table_Spec) ALIAS X_GENERIC SHARED
>
> SELECT 0
> USE (X_USER_Table_Spec) ALIAS X_USER
>
>
> SELECT X_GENERIC.code AS code , ;
> X_GENERIC.describe AS describe , ;
> X_GENERIC.replace AS replace ;
>INTO DBF X_USER ;
> FROM X_GENERIC ;
> WHERE X_GENERIC.code NOT IN ;
> (SELECT X_USER.code FROM X_USER)
>
> Number_Added = _TALLY
>
> =MESSAGEBOX ( STR(Number_Added) , 0 , 'Number added' )
>
> SELECT X_GENERIC
> USE
>
> SELECT X_USER
> USE
>
>
>regarding the APPEND approach... since i couldn't specify a
>SQL-style where clause, i have used a UDF in the FOR clause,
>which worked ok, but that seems kind of clumsy. i'm looking
>for something a little more elegant (and more efficient).
>
>thanks for any help.
If it's not broken, fix it until it is.
My Blog