关于UPDATE的一点问题
在FOXPRO8.0中执行以下程序段:SET TALK OFF
SET SAFETY OFF
SET EXACT ON
CLEAR ALL
CLOSE DATABASES
CREATE DBF L1 (A1 C(10), A2 C(10),A3 N(2)) &&建立表
FOR X=1 TO 8
Y=STR(X,1)
APPEND BLANK
REPLACE A1 WITH 'SJA'+Y,A2 WITH 'SJB'+Y,A3 WITH X
ENDFOR
COPY TO L2 FOR A3<6 &&产生二个表 L1、L2,L2 是L1的部分记录
INDEX ON A3 TAG A1
SELECT 0
USE L2
INDEX ON A3 TAG A1
SELECT L1
SET RELATION TO A3 INTO L2
UPDATE L1 SET L1.A1=L2.A2 WHERE L1.A3=L2.A3 && 想把 L1中A1字段的记录替换为L2中的A2字段的记录,条件是A3字段相同。
原以为 A3=1、2、3、4、5 共5个记录都会替换,实际仅 A3=1 一条记录进行替换,不知为什么。UPDATE 在有些场合会达到符合条件的记录都替换,但是在上述例题中,不知为何失效。