我在Access中有一个非常简单的UPDATE查询,它应该更新基础SQL Server。无论出于何种原因,Access都不会将查询传递给服务器,而是由它自己处理,对每一行进行更新查询。 这是由编辑器生成的查询。
UPDATE dbo_myTable
SET dbo_myTable.myColumn = 'A'
WHERE dbo_myTable.myOtherColumn = 123;
如果我运行与纯SQL相同的查询,则只需要几秒钟-就象预期的那样。
UPDATE dbo.myTable
SET dbo.myTable.myColumn = 'A'
WHERE dbo.myTable.myOtherColumn = 123;
问题不在于'A'价值。如果我改变它'A'到Null遗体的问题
Access中更新查询的语法与SQL Server的语法有很大不同,尤其是在连接方面。它们无法移交给SQL Server。
主要区别之一在于,在Access中,更新查询写入默认情况下会锁定所有包含的表并可以写入所有表,而在SQL Server中,您有一个单独的FROM节,并且查询仅写入锁定并写入单个表表。
如果性能存在问题,请改用直通查询在SQL Server上执行更新查询。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。