旧访问更新声明
Posted
技术标签:
【中文标题】旧访问更新声明【英文标题】:Old Access Update Statement 【发布时间】:2013-07-22 07:55:33 【问题描述】:我们最近从 Oracle 切换到 SQL Server,我们有这个旧的更新语句,它曾经可以工作,但现在给出错误“操作必须是可更新的查询”。那么查询类型设置为更新,我尝试以管理员身份运行它没有成功,我们能够运行选择语句没有问题,所以连接一定没问题吗?
我不确定我是否只是错过了一些非常简单的东西,因为我习惯于使用 SSMS 而不是 Access。更新语句的代码如下:
UPDATE dbo_LEARNER_AIMS
INNER JOIN dbo_REGISTRATION_UNITS ON dbo_LEARNER_AIMS.RUL_CODE = dbo_REGISTRATION_UNITS.RUL_CODE
SET dbo_LEARNER_AIMS.END_DATE = [EXP_END_DATE],
dbo_LEARNER_AIMS.COMPLETION = "10",
dbo_LEARNER_AIMS.OUTCOME = "40",
dbo_REGISTRATION_UNITS.FES_PROGRESS_CODE = "EXT",
dbo_REGISTRATION_UNITS.FES_PROGRESS_DATE = [EXP_END_DATE],
dbo_REGISTRATION_UNITS.PROGRESS_STATUS = "X"
WHERE (((dbo_LEARNER_AIMS.END_DATE) Is Null)
AND ((dbo_LEARNER_AIMS.FUNDING_YEAR)="17")
AND ((dbo_LEARNER_AIMS.LEARNING_AIM) = [Enter Aim])
AND ((dbo_LEARNER_AIMS.EXP_END_DATE) Between #8/1/2012#
AND [enter expected end date]));
提前感谢任何答案。
【问题讨论】:
我没听懂你,你是在Access还是SQL Server上运行这个? 对不起,如果我没有很好地解释它 - 我正在 Access 中运行更新。 【参考方案1】:错误“操作必须是可更新的查询”。 几乎总是意味着索引问题,通常是缺少主键。 还 检查 Query 的属性页面,查找 Snapshot vs Dynaset 设置。
【讨论】:
确实如此。该查询正在更新一个没有主键的视图。我将其更改为更新相关表中的数据并且它有效。感谢您的帮助。【参考方案2】:试试这个查询:
UPDATE dbo_LEARNER_AIMS
SET END_DATE = [EXP_END_DATE],
COMPLETION = "10",
OUTCOME = "40",
/*
dbo_REGISTRATION_UNITS.FES_PROGRESS_CODE = "EXT",
dbo_REGISTRATION_UNITS.FES_PROGRESS_DATE = [EXP_END_DATE],
dbo_REGISTRATION_UNITS.PROGRESS_STATUS = "X"
You can't update multiple table in one update statement ! */
FROM dbo_LEARNER_AIMS /* add this line */
INNER JOIN dbo_REGISTRATION_UNITS ON dbo_LEARNER_AIMS.RUL_CODE = dbo_REGISTRATION_UNITS.RUL_CODE
WHERE (((dbo_LEARNER_AIMS.END_DATE) Is Null)
AND ((dbo_LEARNER_AIMS.FUNDING_YEAR)="17")
AND ((dbo_LEARNER_AIMS.LEARNING_AIM) = [Enter Aim])
AND ((dbo_LEARNER_AIMS.EXP_END_DATE) Between #8/1/2012#
AND [enter expected end date]));
【讨论】:
您好,感谢您的建议,但是当我添加以下行时,UPDATE 语句中出现语法错误:FROM dbo_LEARNER_AIMS :-(. 嗨,Tom,当这个查询用于更新我们的 Oracle 表时,为什么我们可以更新多个表?为你目前所做的努力 +'d 你的答案。 我不知道我从来没有见过你描述的这个更新语法!以上是关于旧访问更新声明的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不声明 IBOutlet 属性的情况下访问 IB 对象(例如 UILabel)?