2017-01-06 1 views
0

Access에서 중복을 찾고 해당 필드를 기반으로 업데이트해야하는 SQL 쿼리가 있습니다. 그것은 "이 쿼리는 업데이트 할 수 없습니다"오류입니다. 테이블을 만드는 하위 쿼리를 만들 필요가 온라인으로 읽었습니까? 솔직히이 점에 대해 어떻게 생각하는지 모르겠습니다.이 SQL 병합 문에서 임시 테이블을 어떻게 만듭니 까?

이 내 쿼리입니다 : 쿼리 또는 레코드가 데이터를 업데이트 할 수 없습니다 많은 이유가 있습니다 업데이트 할 수 없습니다 이유

UPDATE work T INNER JOIN 
     (SELECT DIVISION, FIPS_COUNTY_CODE, LAST, SUFFIX, FIRST, TITLE, BIRTHDATE 
      FROM work      
      GROUP BY DIVISION, FIPS_COUNTY_CODE, LAST, SUFFIX, FIRST, TITLE, BIRTHDATE 
      HAVING COUNT(*) > 1 
     ) AS S 
     ON T.DIVISION = S.DIVISION 
     AND T.FIPS_COUNTY_CODE = S.FIPS_COUNTY_CODE 
     AND T.LAST = S.LAST 
     AND T.SUFFIX = S.SUFFIX 
     AND T.FIRST = S.FIRST 
     AND T.TITLE = S.TITLE 
     AND T.BIRTHDATE = S.BIRTHDATE 
SET T.BAD_CODES = T.BAD_CODES & 'D' 

답변

1

이유. 일부는 아주 분명하다 : 쿼리 •

은 합계 쿼리 (GROUP BY를 사용) 또는 크로스 탭 쿼리 (용도 변환)이며, 레코드가 개별 레코드

필드가 계산 된 필드입니다 •

가되지 않도록, 그래서 그것은 쿼리 • 테이블 또는 데이터베이스

을 편집 할 수있는 권한/권한이 없습니다 •

편집 VBA 함수 또는 사용자 정의 함수를 사용하여 데이터베이스에 (신뢰)를 사용할 수 없습니다 수 없습니다 코드 실행 허용

몇 가지 이유는 분명하지 않지만 피할 수는 없습니다.

• 수정되는 테이블은 기본 키가없는 연결된 테이블입니다.

o 특정 백엔드 데이터베이스 (예 : Microsoft SQL Server)의 경우 Access/Jet는 변경하기 위해 테이블에 키가 있어야합니다. Access에서 수정을 위해 SQL 쿼리를 실행하려고하지만 레코드를 고유하게 식별 할 수 없기 때문에 이는 의미가 있습니다. 키에없는 그 다중 테이블 조인과 쿼리 •

을 편집 할 수 없습니다 여전히 개별 레코드와 개별 ​​레코드에 연결된 일부 요약 필드 쿼리 •

:

덜 명백한은 이런 상황입니다 필드

• 연합

http://www.fmsinc.com/Microsoftaccess/query/non-updateable/index.html

에서 복사 조회
관련 문제