在SQL Server工作UPDATE查询是不是在访问
我有一个查询,我在SQL Server中键入2012 Management Studio中“可更新的查询”:在SQL Server工作UPDATE查询是不是在访问
UPDATE RidesTbl
SET fname = (SELECT fname FROM Users
WHERE username='Dani'),
lname = (SELECT lname FROM Users
WHERE username='Dani')
WHER Eusername = 'Dani'
查询工作正常,一切都好于服务器管理,但是当我尝试运行在MS Access 2013相同的查询,我得到以下信息:
操作必须使用和更新的查询
我读过,它是因为“只读”的情况,但我没有问题来插入或删除'RidesTbl'表中的任何数据,所以可能情况并非如此。
任何帮助将不胜感激,以帮助我解决这个问题。
SQL Server使用Transact-SQL(T-SQL),Access使用Access SQL。它们是两种截然不同的SQL方言。
你的T-SQL查询的“直接翻译”成访问SQL将
UPDATE RidesTbl
SET fname = DLookup("fname","Users","username='Dani'"),
lname = DLookup("lname","Users","username='Dani'")
WHERE Eusername = 'Dani'
它应该是:
UPDATE RidesTbl
SET (fname, lname) VALUES (
(SELECT fname FROM Users WHERE username='Dani'),
(SELECT lname FROM Users WHERE username='Dani'))
WHERE Eusername = 'Dani';
小心你的 “WHERE”!
你可以补充说明这将如何解决OP遇到的问题吗? – 2014-09-21 16:19:28
该查询在Access *或* SQL Server中不起作用。 – 2014-09-21 16:40:09
我的猜测是,在Access中的链接表是只读的。 – 2014-09-21 16:15:42