A Microsoft distribui o Microsoft SQL Server 2008 Service Pack 3 (SP3) correções como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Service Pack 3 (SP3).
Sintomas
Considere o seguinte cenário:
-
Você tem uma instância geometry e uma instância GeometryCollection que contém polígonos interseccionados no Microsoft SQL Server 2008.
-
Você cria uma consulta que chama o método de União () entre as duas instâncias.
-
Você tenta executar a consulta.
Nesse cenário, a interseção dos Polygons da instância GeometryCollection não está contida no resultado da consulta que o método de União () retorna.
Causa
Esse problema ocorre devido a um defeito de código no método de União () .
Resolução
Informações sobre a atualização cumulativa
Pacote de atualizações cumulativas 3 para SQL Server 2008 SP3
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 Service Pack 3, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2648098 Pacote de atualizações cumulativas 3 para SQL Server 2008 Service Pack 3Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Service Pack 3 Fix. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2629969 Compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 3
Informações adicionais
Para reproduzir esse problema, siga estas etapas:
-
Execute a seguinte consulta no Microsoft SQL Server Management Studio:
DECLARE @p1 geometry = 'GEOMETRYCOLLECTION (POLYGON ((0 0, 1 1, 1 0, 0 0)), POLYGON ((0.5 0, 1.5 1, 1.5 0, 0.5 0)))';DECLARE @p2 geometry = 'POINT(0 1)';SELECT @p1.STUnion(@p2)
-
Clique na guia resultados espaciais do resultado que é retornado pela consulta.
Se a interseção de dois triângulos do primeiro parâmetro estiver ausente, então você reproduziu o problema com êxito.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".