22,181
社区成员




消息 4421,级别 16,状态 1,第 1 行
派生表 'a' 不可更新,因为派生表中的某一列是派生的或是常量。
update a
set a.Wsize = zxzl.Wsize
from (
select *
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','F:\e\data\090222.mdb';'admin';'',LGoods)) a,
zxzl
where a.P_id = zxzl.P_id and a.P_id = '6212-C25'
update a
set a.Wsize = zxzl.Wsize
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','F:\e\data\090222.mdb';'admin';'',LGoods)as a,zxzl
where a.P_id = zxzl.P_id and a.P_id = '6212-C25'
--说明LGoods(a)是Access里的表,zxzl是sql里的表,他们的结构完全相同。
--希望把zxzl里面的值update到LGoods里,先update Wsize一个字段。
--请楼上在帮我看看,并告之环境。
select *
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','e:\att2000.mdb';'admin';'',tb)
--1
update a
set a=2
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','e:\att2000.mdb';'admin';'',tb) a
(1 行受影响)
select *
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','e:\att2000.mdb';'admin';'',tb) \
--2
我试了一下,可以正常更新.
select *
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','d:\db1.mdb';'admin';'',ta)
姓名 生日
-------------------------------------------------- -----------------------
小李 2001-01-01 00:00:00.000
小王 2001-01-01 00:00:00.000
update a
set 生日 = '2001-01-02'
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','d:\db1.mdb';'admin';'',ta) as a
select *
from OPENROWSET('Microsoft.Jet.OLEDB.4.0','d:\db1.mdb';'admin';'',ta)
姓名 生日
-------------------------------------------------- -----------------------
小李 2001-01-02 00:00:00.000
小王 2001-01-02 00:00:00.000