问一个简单的SQL更新数据库的问题(300分)

  • 主题发起人 主题发起人 LSS
  • 开始时间 开始时间
L

LSS

Unregistered / Unconfirmed
GUEST, unregistred user!
我最近由于需要使用ACCESS数据库,环境是D5+Access2000,请问如何使用一个数据库
更新另一个数据库,是否ACCESS不支持这种SQL请句,有什么解决办法?下面的语句报错
update table1 set table1.field1=table2.field1 from table2 where table1.id=table2.id
由于很急,给出了很高的分数
 
哈哈﹐我也碰過﹐但你把set 語句放在where 后就可以啦﹗同是天涯淪落人﹗快去改吧
 
simonlai:
不行呀,我是在ACCESS中试的,它说update语句的语法错误
 
update table1 set table1.field1=(select table2.field1 from table2 where table1.id=table2.id)
 
yaya8163:
这也能好使,好象没有数据库支持这种语句
 
UPDATE table1
SET table1.field1 =
(SELECT field1
FROM table2
WHERE table2.id = table1.id)
 
update table1,table2 set table1.field1=table2.field1
where table1.id=table2.id
 
doud:
您的语句也不好使,报错信息是“操作必须使用一个可更新的查询”,和yaya8163与terry_lzs的结果相同
 
如果你的数据结构一样的话,你为什么不用Copy File;
 
不一样的,我只是举个例子,便于请教。我估计可能是LOCAL SQL不支持这种格式,
它的限制有很多
 
办法可能只有在程序中一条一条的update了
 
你可以用select 语句把Table2的记录copy到Table1中去
具体怎么做,不用我说了吧.
 
真得用您说说,我不明白您的意思,我是要更新,不是插入,SQL的复制语句是什么?
 
在Access中建立查询,选[查询]-[更新查询],在执行上述语句试试,
我这儿可以通过,在Query中,也可以通过。
Access2000
 
yaya8163的方法是正确的。
但要求 ID 是唯一的
update table1 set field1=(select table2.field1 from table2
where table1.id=table2.id)

 
同意楼上
不管是那个数据库如果
select table2.field1 from table2 where table1.id=table2.id
选出的记录有多条肯定会报错
 
可以,把数据库的全称加进去就可以了,我经常这样做
 
update table1 set field1=(select table2.field1 from table2,table1
where table2.id=table1.id)

 
doud:不可能,我试过了上述说的所有方法,都不好使,您真的试通了?
jiangone:ID是唯一的,也不行,您这种用法我没有见过,我以前见过有贴子说这种用法是错误的
胡红兵:您的用法就更不能让人理解了,请原谅我这样说
 
后退
顶部