このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1252492296/474
#  SQL Server Compact 3.5 で、a_tbl と b_tbl のコードが一致した場合に 
#  a_tbl に、b_tblの名前をセットするみたいなことしたいのですが無理ですか? 
#   
#  UPDATE    a_tbl 
#  SET          name = b_tbl.name 
#  FROM       b_tbl 
#  WHERE     a_tbl.no = b_tbl.no 
#   
#  実行すると、「FROM 句はこのクエリの種類では使用できません」ってエラーになります。 
#  SQL Server 2008 だと問題ないのですが・・・ 
# 
a_tbl(1,abc).
a_tbl(2,add).
b_tbl(1,uuu).
b_tbl(2,jjj).

'a_tbl と b_tbl のコードが一致した場合に a_tbl に、b_tblの名前をセットする' :-
  a_tbl(_no,_name1),
  b_tbl(_no,_name2),
  update_a_tbl(_no,_name2),
  fail.
'a_tbl と b_tbl のコードが一致した場合に a_tbl に、b_tblの名前をセットする'.

update_a_tbl(_no,_name2) :-
  retract(a_tbl(_no,_)),
  assertz(a_tbl(_no,_name2)),
  fail.
update_a_tbl(_,_).