我试图在VPF6中执行此操作:
Update Table1 From table2 Where table1.id = table2.id ;
Set table1.name = table2.name
我只从@EdPecyna找到VFP9的解决方案:visual foxpro - need to update table from another table
非常感谢
答案 0 :(得分:2)
您无法在VFP 6中的一个命令中执行此操作,因为该版本中的SQL引擎不支持“更新来自”。所以你必须写一些代码。
假设' id'在两个表格中都是独一无二的:
select table2
scan
update table1 where table1.id = table2.id set table1.name = table2.name
endscan
答案 1 :(得分:1)
在VFP6中,你需要像Alan B.已经展示的那样在循环中完成它。
但是,如果您通过VFPOLEDB使用VFP9引擎,则可以使用您在VFP5或VFP3中尝试过的样式。这有时非常有用,允许您执行旧版本中不可用的SQL。即:
Local cn
cn = createobject('adodb.connection')
cn.ConnectionString = 'Provider=VFPOLEDB;Data Source=c:\MyDataFolder\'
cn.Open()
cn.Execute('set exclusive off')
cn.Execute('Update table1 set name=table2.name from table2 where table1.Id=table2.id')
cn.Close()