我有一个在SQL Server 2012 Management Studio中输入的查询:
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中运行相同的查询时,我收到以下消息:
操作必须使用和可更新的查询
我读过它导致因为"只读#34;情况,但我没有插入或删除“RidesTbl'”中任何数据的问题。表,所以可能不是这里的情况。
任何帮助都将帮助我解决这个问题。
答案 0 :(得分:1)
SQL Server使用Transact-SQL(T-SQL),Access使用Access SQL。它们是两种完全不同的SQL方言。
将T-SQL查询“直接转换”到Access SQL中
UPDATE RidesTbl
SET fname = DLookup("fname","Users","username='Dani'"),
lname = DLookup("lname","Users","username='Dani'")
WHERE Eusername = 'Dani'
答案 1 :(得分:-1)
应该是:
UPDATE RidesTbl
SET (fname, lname) VALUES (
(SELECT fname FROM Users WHERE username='Dani'),
(SELECT lname FROM Users WHERE username='Dani'))
WHERE Eusername = 'Dani';
小心你的" WHERE"!