2014-09-21 5 views
1

내가 SQL 서버 2012 Management Studio를 입력 한 쿼리를 가지고에서 "업데이트 가능한 쿼리"되지 않습니다 :작업 UPDATE 쿼리 액세스

UPDATE RidesTbl 
SET fname = (SELECT fname FROM Users 
      WHERE username='Dani'), 
    lname = (SELECT lname FROM Users 
      WHERE username='Dani') 
WHER Eusername = 'Dani' 
예상 모든 좋은대로 쿼리가 작동

서버 관리하지만, 나는 다음과 같은 메시지가 얻을 MS 액세스 2013에서 동일한 쿼리를 실행하려고하면

조작 사용해야하며 업데이트 가능한 쿼리를

"읽기 전용"상황 때문에 읽었지만 'RidesTbl'테이블에서 데이터를 삽입하거나 삭제하는 데 문제가 없으므로 여기서는 그렇지 않습니다.

이 문제를 해결할 수 있도록 도움을 주시면 감사하겠습니다.

+0

내 생각 엔 Access에서 연결된 테이블은 읽기 전용이다. –

답변

1

SQL Server는 Transact-SQL (T-SQL)을 사용하고 Access는 Access SQL을 사용합니다. 그것들은 SQL의 두 가지 방언입니다.

액세스 SQL로 당신의 T-SQL 쿼리의 "직접 번역"것

UPDATE RidesTbl 
SET fname = DLookup("fname","Users","username='Dani'"), 
    lname = DLookup("lname","Users","username='Dani'") 
WHERE Eusername = 'Dani' 
-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"에주의!

+0

OP가 발생한 문제를 해결하는 방법에 대한 설명을 추가 할 수 있습니까? –

+0

해당 쿼리는 Access * 또는 * SQL Server에서 작동하지 않습니다. –