通过从 sql server 加入表来更新访问表
Posted
技术标签:
【中文标题】通过从 sql server 加入表来更新访问表【英文标题】:Update table in access by joining a table from 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。它是一个更强大的数据库。 【参考方案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 并在使用后删除表而不使用主键来创建临时表。感谢大家的帮助。以上是关于通过从 sql server 加入表来更新访问表的主要内容,如果未能解决你的问题,请参考以下文章
通过从 SQL Server 中的当前日期删除超过 180 天的所有记录来清除
在 SQL 中加入表后,通过从当前日期中减去日期列来创建新列
无法通过从下拉选择转换的选定字段代码使用 SQL 访问全局视图表
加载包含链接的 sql server 表的 mdb 时 ms 访问崩溃