A Microsoft distribui as correções do Microsoft SQL Server 2008 Service Pack 3 (SP3) como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento do SqL Server 2008 Service Pack 3 (SP3).
Sintomas
Considere o seguinte cenário:
-
Tem uma instância de geometria e uma instância geometrycollection que contém polígonos de intersecção no Microsoft SQL Server 2008.
-
Cria-se uma consulta que chama o método STUnion entre as duas instâncias.
-
Tente fazer a consulta.
Neste cenário, a intersecção dos polígonos da instância geometrycollection não está contida no resultado da consulta que o método STUnion() retorna.
Causa
Esta questão ocorre devido a um defeito de código no método STUnion().
Resolução
Informação de atualização cumulativa
Pacote de atualização cumulativo 3 para SQL Server 2008 SP3
A correção para este 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 para o SQL Server 2008 Service Pack 3, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2648098 Pacote de atualização cumulativo 3 para SQL Server 2008 Service Pack 3Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção do SqL Server 2008 Service Pack 3. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2629969 SQL Server 2008 constrói que foram lançadas após o lançamento do SQL Server 2008 Service Pack 3
Mais Informações
Para reproduzir esta questão, siga estes passos:
-
Executar 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 no separador resultados do Spatial do resultado que é devolvido pela consulta.
Se faltar a intersecção de dois triângulos do primeiro parâmetro, então reproduziu o problema com sucesso.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".