증상

Microsoft SQL Server 2012 또는 SQL Server 2014의 테이블 변수에 커서를 사용 하는 저장 프로시저를 만든다고 가정 합니다. 또한 저장 프로시저는 커서와 함께 WHERE 문을 사용 하 여 테이블을 업데이트 합니다. 예를 들어 저장 프로시저는 다음과 같이 나타날 수 있습니다.

CREATE PROCEDURE dbo.usp_TestSP AS  BEGIN  DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL)  DECLARE @curInt INT, @newInt INT SET @newInt = 1  DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL  OPEN ccc  FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc  SELECT * FROM @TableVar END 

Sp_refreshsqlmodule 시스템 저장 프로시저를 사용 하 여 저장 프로시저를 실행 하면 액세스 위반이 발생할 수 있으며 다음과 유사한 오류 메시지가 나타날 수 있습니다.

메시지 596, 수준 21, 상태 1은 세션이 kill 상태에 있기 때문에 실행을 계속할 수 없습니다. 메시지 0, 수준 20, 상태 0A 현재 명령에서 심각한 오류가 발생 했습니다. 결과가 있으면 삭제 해야 합니다.

이 경우 다음과 유사한 오류도 SQL Server 오류 로그에 기록 됩니다.

날짜 시간. 730 spid51 SqlDumpExceptionHandler: 프로세스 51에서 치명적인 예외가 생성 되었습니다 c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.date time.730 spid51 * *******************************************************************************date time.730 spid51 *date time.730 spid51 * BEGIN STACK DUMP:date time.730 spid51 * date time spid 51date time.730 spid51 *date time.730 spid51 *date time.730 spid51 * Exception Address = 00007FFC270236D5 Module(sqllang+00000000005036D5)date time.730 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATIONdate time.730 spid51 * Access Violation occurred reading address 0000006F00620074date time.730 spid51 * Input Buffer 136 bytes -date time.730 spid51 * EXECUTE sp_refreshsqlmodule N'[dbo]. [usp_TestSP] ' 날짜 시간. 730 spid51 * date time. 730 spid51 *

해결 방법

누적 업데이트 정보

이 문제는 다음 업데이트에서 해결 되었습니다.

각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.

상태

Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.

참조

Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어 에 대해 알아봅니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.