Microsoft SQL Server 2012 서비스 팩 1 수정 사항은 하나의 다운로드 가능한 파일로 배포됩니다. 수정 사항이 누적된 경우 각 새 릴리스에는 이전 SQL Server 2012 서비스 팩 1 수정 릴리스에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다.
증상
SQL Server 2012에서 Transact-SQL 문을 실행하면 다음과 같은 오류 메시지가 표시됩니다.
'begi'에 대한 구문이 잘못되었습니다.
이 문제는 다음 조건이 충족될 때 발생합니다.
-
문에는 IF 조건이 포함됩니다.
-
IF 조건에 BEGIN 및 END 문이 포함되어 있지 않습니다.
-
IF 조건 뒤에 BEGIN TRY 블록이 잇습니다.
-
쿼리를 실행할 때 IF 블록이 다시 컴파일됩니다.
해결 방법
누적 업데이트 정보
SQL Server 2012 SP1의 누적 업데이트 4
이 문제에 대한 수정 사항은 누적 업데이트 4에서 처음 릴리스되었습니다. SQL Server 2012 SP1에 대한 이 누적 업데이트 패키지를 가져오는 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서로 이동합니다.
2833645 SQL Server 2012 SP1에 대한 누적 업데이트 4 빌드가 누적된 경우 각 새 수정 릴리스에는 모든 핫픽스 및 이전 SQL Server 2012 SP1 수정 릴리스에 포함된 모든 보안 수정 사항이 포함되어 있습니다. 이 핫픽스를 포함하는 최신 수정 릴리스를 적용하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하세요.
2772858 SQL Server 2012 서비스 팩 1이 릴리스된 후 릴리스된 SQL Server 2012 빌드
상태
Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.
추가 정보
이 문제를 재현하려면 SQL Server 2012에서 다음 Transact-SQL 문을 실행합니다. DECLARE @i INTIF object_id('tempdb.. #temptable')이 NULLDROP TABLE이 아닙니다#temptable CREATE TABLE #temptable(id INT)INSERT into #temptable VALUES (1),(2),(3);IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);BEGIN TRYSELECT 'message'END TRYBEGIN CATCHSELECT ERROR_MESSAGE()END CATCH
해결 방법
이 문제를 해결하려면 IF 조건에 BEGIN 및 END 문을 추가합니다.
참고 자료
SQL Server 대한 증분 서비스 모델에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서로 이동합니다.
935897 SQL Server 팀에서 증분 서비스 모델을 사용하여 보고된 문제에 대한 핫픽스를 제공할 수 있습니다. SQL Server 업데이트에 대한 명명 스키마에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서로 이동합니다.
822499 Microsoft SQL Server 소프트웨어 업데이트 패키지에 대한 명명 스키마 소프트웨어 업데이트 용어에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료의 문서로 이동합니다.
824684 Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명