증상
Microsoft SQL Server 2008 R2, SQL Server 2012 또는 SQL Server 2014을 사용 한다고 가정 합니다. TOP N 및 ORDER BY를 사용 하 여 쿼리를 실행 하면 쿼리는 다음과 유사한 assert 오류를 발생 합니다.
위치: "qstopsrt": 384Expression: fFalseSPID: <SPID>프로세스 id: <ProcessID>Location: Qxcntxt: 1052expression: CREF = = 0 SPID: <SPID>Process 3624, 수준 20, 상태 1, 줄 2a 시스템 어설션 검사에 실패 했습니다. 자세한 내용은 SQL Server 오류 로그를 확인 하세요. 일반적으로 어설션 오류는 소프트웨어 버그 또는 데이터 손상으로 인해 발생 합니다. 데이터베이스가 손상 되었는지 확인 하려면 DBCC CHECKDB를 실행 하는 것이 좋습니다. 설치 하는 동안 Microsoft에 덤프를 보내려고 동의한 경우 미니 덤프가 Microsoft로 전송 됩니다. Microsoft는 최신 서비스 팩 또는 QFE 기술 지원팀에서 업데이트를 구할 수 있습니다. 메시지 0, 수준 20, 상태 0, 줄 0A에서 현재 명령에 심각한 오류가 발생 했습니다. 결과가 있으면 삭제 해야 합니다.
참고 쿼리 계획에 "정렬 (상위 N 정렬)"이 포함 되어 있는 경우에도 수정 사항이 적용 될 수 있습니다.
원인
쿼리 실행 엔진의 내부 오류 때문에이 문제가 발생 합니다.
해결 방법
이 문제는 다음 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
SQL Server 2012 SP2에 대 한 누적 업데이트 1 /en-us/help/2976982
SQL Server 2014 누적 업데이트 2 /en-us/help/2967546
SQL Server 2012 SP1 용 누적 업데이트 10 /en-us/help/2954099
SQL Server 2008 R2 SP2에 대 한 누적 업데이트 12 /en-us/help/2938478
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.