간단한 SQL 쿼리로 이상한 MS 액세스 동작


0

Access 2016에서 다음 쿼리를 실행하면 결과 0이 나타납니다 .

SELECT count(*) FROM  EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}'

정확히 동일한 필터로 'AND'하면 결과 1이 표시됩니다 (믿습니다. 실제로 아래와 같은 쿼리를 실행했습니다).

SELECT count(*) FROM  EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}' AND GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}'

이제 다음을 실행하면 결과 0이 다시 나타납니다.

SELECT count(*) FROM  EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}' AND 1=1

데이터베이스의 "컴팩트 및 복구"를 수행했지만 도움이되지 않습니다. 압축 및 복구에도 불구하고 이전 파일이 여전히 손상 된 경우를 대비하여 처음부터 새 파일을 만들려고했지만 도움이되지 않습니다.

테이블 EQUIPMENT_OPERATING_HOURS와 테이블 EQUIPMENT간에 참조 무결성이있는 제약 조건을 설정하면 첫 번째 쿼리가 예상 결과 1을 반환합니다. 제약 조건을 제거하거나 참조 무결성이없는 관계 만 설정하면 다시 0이됩니다. (EQUIPMENT 테이블은 쿼리의 일부가 아니므로 쿼리에 영향을 미치지 않아야 함)

Access 프로그램에서 또는 C ++ ADO를 사용하여 쿼리하면 동일한 동작이 발생하므로 Jet 엔진에 문제가있는 것 같습니다.

정보를 위해 Access 2016을 사용하고 있으며 msjet 4.00.9801.4가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.