【问题标题】:Update table in access by joining a table from sql server通过从 sql server 加入表来更新访问表
【发布时间】:2016-02-08 15:10:13
【问题描述】:

我正在使用 access 和 sql server 组合。我的主表位于 sql server 中,而我的临时表是在 access 中创建的。我正在尝试通过从 sql server 加入表来更新访问中的临时表。但我不断收到错误,操作必须使用可更新的查询。下面是我的查询。任何帮助将不胜感激。

UPDATE [tmpEditErrCode220 - 2] INNER JOIN dbo_Indicator_0 ON ([tmpEditErrCode220 - 2].cpt_code_allow = dbo_Indicator_0.cpt_code_allow) AND ([tmpEditErrCode220 - 2].cpt_code_omit = dbo_Indicator_0.cpt_code_omit) SET [tmpEditErrCode220 - 2].flag = On
WHERE ((([tmpEditErrCode220 - 2].flag)=Off));

【问题讨论】:

  • 为什么不在 SQL Server 中创建临时表?
  • 我可以这样做,但我使用的是访问作为前端。我可以只使用传递查询在 sql server 中创建表,这会修复我遇到的错误
  • 我建议更改整个架构以使用 SQL Server。它是一个更强大的数据库。

标签: sql sql-server ms-access ms-access-2010


【解决方案1】:

试试这个

UPDATE dbo_Indicator_0 
INNER JOIN 
[tmpEditErrCode220 - 2] ON ([dbo_Indicator_0].cpt_code_omit = [tmpEditErrCode220 - 2].cpt_code_omit) AND ([dbo_Indicator_0].cpt_code_allow = [tmpEditErrCode220 - 2].cpt_code_allow) 
SET [tmpEditErrCode220 - 2].flag = "On"
WHERE ((([tmpEditErrCode220 - 2].flag)="off"));

【讨论】:

  • 仍然收到错误操作必须使用可更新查询
  • 请确认 [tmpEditErrCode220 - 2] 有主键。请确认 [dbo_Indicator_0] 有主键。
  • 这些表都没有主键,因为存在重复值
  • 我相信向每个表添加主键以确保至少完成最少的索引,将解决问题。
  • OK 我能够做到这一点,方法是通过将查询传递到 sql server 并在使用后删除表而不使用主键来创建临时表。感谢大家的帮助。
猜你喜欢
  • 2011-05-23
  • 2019-01-01
  • 2012-10-18
  • 2015-01-22
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2019-07-21
相关资源
最近更新 更多