CREATE CURSOR cData (PK I, Value I) && If this is a table then we have flexibility for future PKs and/or updated values INDEX ON PK CANDIDATE TAG PK INSERT INTO cData (PK, Value) VALUES (1, 24) INSERT INTO cData (PK, Value) VALUES (2, 34) INSERT INTO cData (PK, Value) VALUES (3, 50) INSERT INTO cData (PK, Value) VALUES (4, 59) INSERT INTO cData (PK, Value) VALUES (5, 74) INSERT INTO cData (PK, Value) VALUES (6, 84) INSERT INTO cData (PK, Value) VALUES (7, 97) REPLACE FieldZ WITH IIF(INDEXSEEK(FieldZ, .t., 'cData', 'PK'), cData.Value, FieldZ) && or null or -1 or whatever or REPLACE FieldZ WITH cData.Value FOR INDEXSEEK(FieldZ, .t., 'cData', 'PK') or UPDATE myTable SET FieldZ = cData.Value Select cData.Value from myTable join cData on cData.PK = FieldZ * Probably wrong as I wrote it from memory and my memory is bad