A Microsoft distribui correcções do Microsoft SQL Server 2008, como um ficheiro para transferência. Uma vez que as correcções são cumulativas, cada nova versão inclui todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior do SQL Server 2008.
Sintomas
Num computador que esteja a executar o Microsoft SQL Server 2008, detecta um ou mais dos seguintes problemas quando criar um servidor ligado utilizando o fornecedor de SQL Native Client (Sqlncli.dll).
Nota Estes problemas também ocorrem no Microsoft SQL Server 2005 Service Pack 3 (SP3). No entanto, a correcção incluída neste artigo não se aplica ao SQL Server 2005 SP3.
Problema 1
Considere o seguinte cenário:
-
No SQL Server Management Studio, abra a janela de novo servidor ligado e criar um servidor ligado, utilizando um das seguintes configurações:
-
Fornecedor de SQL Native Client com tipo de servidor de SQL Server
-
Fornecedor de SQL Native Client (não SQL nativo cliente 10), com tipo de servidor de outra origem de dados
-
Fornecedor Microsoft OLE DB para SQL Server com tipo de servidor de outra origem de dados
-
-
Expanda o catálogo de Servidores ligados no SQL Server Management Studio para ver os servidores ligados.
Neste cenário, o serviço SQL Server encerra inesperadamente ou é gerado um ficheiro de informação mini várias vezes na pasta de registo de erros do SQL Server. Este problema continua até que seja parado o serviço SQL Server. Além disso, o SQL Server Management Studio comunica o seguinte erro:
Título: Microsoft SQL Server Management Studio
------------------------------
Falha ao obter dados para este pedido. (Microsoft.SqlServer.Management.Sdk.Sfc)
Para obter ajuda, clique em: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
------------------------------
OBTER INFORMAÇÕES ADICIONAIS:
Ocorreu uma excepção ao executar uma instrução Transact-SQL ou batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Tempo limite expirou. O tempo limite decorreu antes da conclusão da operação ou o servidor não está a responder. (Microsoft SQL Server, erro: -2)
Nota Este problema não ocorre se executar uma consulta de servidor ligado quando utiliza o fornecedor de SQL Native Client com tipo de servidor que o SQL Server.
Problema 2
Considere o seguinte cenário:
-
Criar um servidor ligado utilizando o Microsoft OLE DB Provider para controladores ODBC.
-
A origem de dados ODBC é criada utilizando o fornecedor de cliente nativo SQL com o tipo de servidor como outra origem de dados.
Neste cenário, o servidor ligado não retorna nenhum resultado.
Resolução
A correcção deste problema publicada pela primeira vez na actualização cumulativa 7 para SQL Server 2008 Service Pack 1. Para mais informações sobre este pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:-
979065 Pacote de actualização cumulativa 7 para SQL Server 2008 Service Pack 1
Nota Uma vez que as compilações são cumulativas, cada edição contém todas as correcções e correcção de todas as correcções de segurança que foram incluídas no anterior do SQL Server 2008. Recomendamos que pense em aplicar a edição de correcção mais recente que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:-
970365 Cria o SQL Server 2008 que foram disponibilizadas após o lançamento do SQL Server 2008 Service Pack 1
Correcções do Microsoft SQL Server 2008 são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por predefinição, qualquer correcção fornecida num service pack do SQL Server está incluída no próximo service pack do SQL Server.
Mais informações
Pode confirmar a versão dos ficheiros Sqlncli.dll e Sqlservr.exe por executar consulta seguinte:
select * from sys.dm_os_loaded_modules where name like '%sqlncli.dll' or name like '%sqlservr.exe'
Se estiver a utilizar o Microsoft SQL Server 2008 Service Pack 1 (SP1) ou versões posteriores do Microsoft SQL Server 2008, a consulta irá devolver as seguintes informações de versão:
-
O ficheiro de Sqlncli.dll terá uma versão posterior 9.0:3207.0.
-
O ficheiro de Sqlservr.exe tem uma versão posterior ou igual a 10.0:2531.0, mas anteriormente que 10.0:2766.0.
Se estiver a utilizar o Microsoft SQL Server 2008 RTM ou versões posteriores do SQL Server 2008 RTM, a consulta irá devolver as seguintes informações de versão:
-
O ficheiro de Sqlncli.dll tem uma versão posterior à versão 9.0:3207.0.
-
O ficheiro de Sqlservr.exe tem uma versão posterior ou igual a 10.0:1600.0, mas anteriormente que 10.0:1835.0.
Solução alternativa
Para contornar estes problemas, siga estes passos:
Workaround 1:
1. Elimine o servidor ligado com falhas.
2. Crie um novo servidor ligado utilizando o fornecedor de 10.0 de cliente nativo (SQLNCLI10) do SQL Server. Para tal:
r. botão direito do rato em Servidores ligados e seleccione o Novo servidor ligado.
b. Seleccione outra origem de dados e escolha 10.0 de cliente nativo do SQL Server para o fornecedor.
Workaround 2:
-
Crie uma subchave de registo com o nome "SQLNCLI" no seguinte caminho:
HKLM\Software\Microsoft\DataAccess
-
Crie uma entrada de registo do tipo REG_DWORD com o nome "SQLOSPartitioning" nesta subchave.
-
Defina o valor desta entrada como 0x0.
Estado
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais informações
Software de regra |
Título de regra |
Descrição da regra |
Versões de produtos contra os quais a regra é avaliada |
O System Center Advisor |
SQL Server em falta actualização KB979779 para impedir a Corrupção de memória de cliente nativo SQL |
Um fornecedor de SQL Native Client que corresponde ao SQL Server 2005 está presente neste servidor. Esta versão do SQLNCLI.dll poderia ser potencialmente carregado no SQL Server 2008 e do SQL Server 2008 R2 ao enumerar os fornecedores e a criação de servidores ligados. Versões específicas do SQL Server 2008 e do SQL Server 2008 R2, poderá detectar problemas e deixa de reagir quando criar ou utilizar um servidor ligado criado com este afectados SQLNCLI.dll. Actualizar as instâncias do SQL Server 2008 e o SQL Server 2008 R2 afectadas com as correcções necessárias ou evitar a utilização deste SQLNCLI.dll durante a criação de servidores ligados. |
Referências
Para mais informações sobre o modelo de Assistência Incremental para o SQL Server, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
935897 um modelo de Assistência Incremental está disponível a partir da equipa do SQL Server para proporcionar correcções para problemas comunicados
Para mais informações sobre o esquema de atribuição para actualizações do SQL Server, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
822499 Novo esquema de atribuição de nomes para pacotes de actualização de software do Microsoft SQL Server
Para mais informações sobre a terminologia de atualização de software, clique no seguinte número de artigo para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
824684 descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft