在SQL Server中工作UPDATE查询不是一个可更新的查询"在Access中

时间:2014-09-21 16:10:23

标签: sql sql-server-2012 ms-access-2013

我有一个在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'”中任何数据的问题。表,所以可能不是这里的情况。

任何帮助都将帮助我解决这个问题。

2 个答案:

答案 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"!