A Microsoft distribui as correções do Microsoft SQL Server 2008 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 de correção SQL Server 2008.
Sintomas
Considere o seguinte cenário:
-
Executou uma consulta paralela que utiliza a função row_number no Microsoft SQL Server 2008.
-
Tente executar a consulta utilizando uma subquery que está dentro de uma declaração SELECT ou de uma declaração de Linguagem de Manipulação de Dados (DML).
Neste cenário, encontra-se uma das seguintes questões:
-
Recebe resultados incorretos se executar a consulta dentro da declaração SELECT muitas vezes.
-
A tabela pode conter dados incorretos se a consulta for apresentada dentro de uma declaração de DML. Se a mesa tiver constrangimentos, a declaração pode falhar com uma violação de restrição. Por exemplo, uma declaração INSERT pode falhar e ocorrer um erro de violação de chave primária se a tabela tiver uma chave primária.
Nota Estas questões podem ocorrer numa das seguintes situações:
-
Define a opção de sugestão de consulta MAXDOP para um valor superior a 2.
-
Define a opção Max Degree of Parallelism para um valor superior a 2 na configuração do servidor.
Resolução
Para resolver este problema, obtenha o mais recente pacote de serviços para o SQL Server 2008. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
968382 Como obter o mais recente pacote de serviços para SQL Server 2008
Solução
Para contornar este problema, utilize um dos métodos seguintes:
-
Ativar a bandeira de traço 4134 se tiver aplicado uma das seguintes atualizações:
-
Pacote de atualização cumulativo 6 para SQL Server 2008 ou um pacote de atualização cumulativo posterior para SQL Server 2008
-
Pacote de atualização cumulativo 2 para SQL Server 2008 Service Pack 1 (SP1) ou um pacote de atualização cumulativo posterior para SQL Server 2008 SP1
Para obter mais informações sobre como permitir o rastreio de bandeiras, visite o seguinte site da MSDN:
-
-
Faça referência à secção "Workaround" no artigo 970198 da Base de Conhecimento da Microsoft. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
970198 FIX: Recebe um resultado incorreto quando executa uma consulta que utiliza a função row_number no SQL Server 2008