Microsoft SQL Server 2008 R2 서비스 팩 2 (SP2) 수정 프로그램을 하나의 다운로드 가능한 파일로 배포 합니다. 수정 프로그램이 누적 되므로 새 릴리스에는 이전 SQL Server 2008 R2 서비스 팩 2 수정 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다.
증상
Microsoft SQL Server 2008 R2 SP2 또는 Microsoft SQL Server 2012에서 쿼리를 실행할 때 다음 조건에 해당 하는 경우 잘못 된 결과가 나타날 수 있습니다.
-
쿼리는 FULL JOIN 절의 결과에 대해 CROSS APPLY 절을 사용 합니다.
-
테이블 데이터는 FULL JOIN 절에서 테이블 반환 사용자 정의 함수를 호출 하 여 제공 됩니다.
-
함수는 열 이름을 매개 변수로 받아들이며 결과를 표로 반환 합니다.
예를 들어 다음과 유사한 쿼리를 실행 합니다.
SELECT * FROM tablename CROSS APPLY ( SELECT * FROM (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 FULL JOIN (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 ON s1.nodeName = s2.nodeName ) s
참고 이 문제는 Microsoft SQL Server 2012에서 발생 하지 않습니다.
해결 방법
누적 업데이트 정보
SQL Server 2012 누적 업데이트 7
이 문제에 대 한 픽스는 먼저 누적 업데이트 7에서 릴리스 되었습니다. SQL Server 2012의이 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2823247 SQL Server 2012에 대 한 누적 업데이트 패키지 7참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2012 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2692828 SQL Server 2012이 출시 된 이후 출시 된 SQL Server 2012 빌드
SQL Server 2012 SP1 용 누적 업데이트 3
이 문제에 대 한 픽스는 먼저 누적 업데이트 3에서 릴리스 되었습니다. SQL Server 2012 SP1 용 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2812412 SQL Server 2012 서비스 팩 1 용 누적 업데이트 패키지 3참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2012 SP1 해결 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2772858 SQL Server 2012 서비스 팩 1 이후 릴리스된 SQL Server 2012 빌드가 릴리스 되었습니다.
SQL Server 2008 R2 SP2에 대 한 누적 업데이트 5
이 문제에 대 한 픽스는 먼저 누적 업데이트 5에서 릴리스 되었습니다. SQL Server 2008 R2 SP 2 용 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2797460 SQL Server 2008 R2 서비스 팩 2 용 누적 업데이트 패키지 5참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2008 R2 SP 2 fix 릴리스의 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2730301 SQL Server 2008 R2 서비스 팩 2 이후 릴리스된 SQL Server 2008 R2 빌드가 릴리스 되었습니다.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
해결 방법
이 문제를 해결 하려면 FULL JOIN 절 대신 full MERGE JOIN 절을 사용 합니다. 예를 들어 "현상" 절에 나와 있는 쿼리를 다음과 같이 변경할 수 있습니다.
SELECT * FROM tablename CROSS APPLY ( SELECT * FROM (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1 FULL MERGE JOIN (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2 ON s1.nodeName = s2.nodeName ) s
추가 정보
CROSS APPLY 절을 사용 하는 방법에 대 한 자세한 내용은 다음 Microsoft TechNet 웹 사이트를 참조 하세요.