我已经查看了这个错误,但一切似乎都与权限问题有关。
我有一个 Access 2003 数据库,其中包含以下更新查询。
UPDATE dbo_vdvStockStatus
INNER JOIN [#tblReport] ON dbo_vdvStockStatus.ItemKey = [#tblReport].MatItemKey
SET [#tblReport].QtyOnHand = [#tblReport].QtyOnHand-dbo_vdvStockStatus.QtyOnHand
WHERE (((dbo_vdvStockStatus.WhseID)="Q"));
dbo_vdvStockStatus 是来自 SQLServer 的视图,#tblReport 是 Access db 中的本地表。一切都为此工作。
所以我创建了查询的副本,只是将视图更改为不同的视图。
UPDATE dbo_vdvInventoryStatus
INNER JOIN [#tblReport] ON dbo_vdvInventoryStatus.ItemKey = [#tblReport].MatItemKey
SET [#tblReport].QtyOnHand = [#tblReport].QtyOnHand-dbo_vdvInventoryStatus.QtyOnHand
WHERE (((dbo_vdvInventoryStatus.WhseBinID) like "*insp*"));
然而,这给了我上面臭名昭著的错误。我尝试从参数中删除通配符,但它仍然给我错误。
由于#tblReport 是同一个表(和数据库),我在第一个查询中成功更新,为什么它在第二个查询中失败?