A Microsoft distribui 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 SQL Server 2008 corrigir lançamento.
Sintomas
Tenha em conta o seguinte cenário:
- Executar uma consulta paralela que usa a função row_number no Microsoft SQL Server 2008.
- Pode tentar executar a consulta utilizando uma subconsulta que está dentro de uma instrução SELECT ou uma instrução DML (Data Manipulation Language).
Nesse cenário, você encontra um dos seguintes problemas:
Recebe resultados incorretos se executar a consulta dentro da instrução SELECT muitas vezes.
A tabela poderá conter dados incorretos se a consulta for executada dentro de uma instrução DML. Se a tabela tiver restrições, a instrução poderá falhar com uma violação de restrição.
Por exemplo, uma instrução INSERT poderá falhar e ocorrer um erro de violação de chave primária se a tabela tiver uma chave primária.
Observação Esses problemas podem ocorrer em uma das seguintes situações:
- Defina a opção de dica de consulta MAXDOP para um valor maior que 2.
- Você define a opção Grau Máximo de paralelismo para um valor maior que 2 na configuração do servidor.
Resolução
Para resolver este problema, obtenha o service pack mais recente 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 service pack mais recente para o SQL Server 2008
Solução
Para contornar esse problema, use um dos seguintes métodos:
Ative o sinalizador de rastreio 4134 se tiver aplicado uma das seguintes atualizações:
- Pacote de atualização cumulativa 6 para SQL Server 2008 ou um pacote de atualização cumulativa posterior para SQL Server 2008
- Pacote de atualizações cumulativas 2 para o SQL Server 2008 Service Pack 1 (SP1) ou um pacote de atualização cumulativa posterior para o SQL Server 2008 SP1
Para obter mais informações sobre como habilitar sinalizadores de rastreamento, visite o seguinte site da MSDN:
Consulte a secção "Solução" no artigo da Base de Dados de Conhecimento Microsoft 970198.
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 CORRECÇÃO: Recebe um resultado incorrecto quando executa uma consulta que utiliza a função row_number no SQL Server 2008