S’applique à
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup

Microsoft distribue les correctifs microsoft SQL Server 2008 sous la forme d’un fichier téléchargeable. Étant donné que les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008.

Symptômes

Sur un ordinateur exécutant Microsoft SQL Server 2008, vous rencontrez un ou plusieurs des problèmes suivants lorsque vous créez un serveur lié à l’aide du fournisseur SQL Native Client (Sqlncli.dll).Remarque Ces problèmes se produisent également dans Microsoft SQL Server 2005 Service Pack 3 (SP3). Toutefois, le correctif logiciel de cet article ne s’applique pas à SQL Server 2005 SP3.

Problème 1

Prenons l’exemple du scénario suivant :

  • Dans SQL Server Management Studio, vous ouvrez la fenêtre Nouveau serveur lié et créez un serveur lié à l’aide de l’une des configurations suivantes :

    • Fournisseur SQL Native Client avec le type de serveurcomme SQL Server

    • Fournisseur SQL Native Client (et non SQL Native Client 10) avec le type de serveur comme autre source de données

    • Fournisseur Microsoft OLE DB pour SQL Server avec le type de serveur comme autre source de données

  • Vous développez le catalogue Serveurs liés dans SQL Server Management Studio pour afficher les serveurs liés.

Dans ce scénario, le service SQL Server s’arrête de manière inattendue ou un fichier de mini-vidage est généré à plusieurs reprises dans le dossier journal des erreurs SQL Server. Ce problème persiste jusqu’à ce que le service SQL Server soit arrêté. En outre, SQL Server Management Studio signale l’erreur suivante : TITRE : Microsoft SQL Server Management Studio------------------------------ Échec de la récupération des données pour cette demande. (Microsoft.SqlServer.Management.Sdk.Sfc)Pour obtenir de l’aide, cliquez sur : http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476------------------------------INFORMATIONS SUPPLÉMENTAIRES : une exception s’est produite lors de l’exécution d’une instruction Transact-SQL ou d’un lot. (Microsoft.SqlServer.ConnectionInfo)------------------------------Timeout a expiré. Le délai d'expiration s'est produit avant la fin de l'opération ou le serveur ne répond pas. (Microsoft SQL Server, Erreur : -2)Remarque Ce problème ne se produit pas si vous exécutez une requête de serveur lié lorsque vous utilisez le fournisseur SQL Native Client avec le type de serveur comme SQL Server.

Problème 2

Prenons l’exemple du scénario suivant :

  • Vous créez un serveur lié à l’aide du fournisseur Microsoft OLE DB pour les pilotes ODBC.

  • La source de données ODBC est créée à l’aide du fournisseur SQL Native Client avec le type serveur comme autre source de données.

Dans ce scénario, le serveur lié ne retourne aucun résultat.

Résolution

Le correctif pour ce problème a été publié pour la première fois dans la mise à jour cumulative 7 pour SQL Server Service Pack 1 2008. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft : -

979065Note du package de mise à jour cumulative 7 pour SQL Server Service Pack 1 2008. Si les builds sont cumulatives, chaque nouvelle version de correctif contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008. Nous vous recommandons d’appliquer la version la plus récente du correctif qui contient ce correctif. Pour plus d’informations, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft : -

970365Les versions SQL Server 2008 qui ont été publiées après SQL Server 2008 Service Pack 1 a été publié Microsoft SQL Server 2008 les correctifs logiciels sont créés pour des SQL Server Service Packs spécifiques. Vous devez appliquer un correctif SQL Server Service Pack 1 SQL Server 2008 à une installation de SQL Server 2008 Service Pack 1. Par défaut, tout correctif logiciel fourni dans un Service Pack SQL Server est inclus dans le service pack SQL Server suivant.

Informations supplémentaires

Vous pouvez confirmer la version des fichiers Sqlncli.dll et Sqlservr.exe en exécutant la requête suivante :

select * from sys.dm_os_loaded_modules where name like '%sqlncli.dll' or name like '%sqlservr.exe'

Si vous utilisez Microsoft SQL Server 2008 Service Pack 1 (SP1) ou des versions ultérieures de Microsoft SQL Server 2008, la requête retourne les informations de version suivantes :

  • Le fichier Sqlncli.dll aura une version ultérieure à 9.0:3207.0.

  • Le fichier Sqlservr.exe aura une version ultérieure ou égale à 10.0:2531.0, mais antérieure à 10.0:2766.0.

Si vous utilisez Microsoft SQL Server 2008 RTM ou des versions ultérieures de SQL Server 2008 RTM, la requête retourne les informations de version suivantes :

  • Le fichier Sqlncli.dll aura une version ultérieure à la version 9.0:3207.0.

  • Le fichier Sqlservr.exe aura une version ultérieure ou égale à 10.0:1600.0, mais antérieure à 10.0:1835.0.

Solution de contournement 

Pour contourner ces problèmes, procédez comme suit : Solution de contournement 1:1.     Supprimez le serveur lié défaillant.2.     Créez un serveur lié à l’aide du fournisseur SQL Server Native Client 10.0 (SQLNCLI10). Pour ce faire : a. Cliquez avec le bouton droit sur Serveurs liés, puis sélectionnez Nouveau serveur lié. B. Sélectionnez Autre source de données et choisissez SQL Server Native Client 10.0 pour Fournisseur.Solution de contournement 2 :

  1. Créez une sous-clé de Registre nommée « SQLNCLI » dans le chemin d’accès suivant :

    HKLM\Software\Microsoft\DataAccess

  2. Créez une entrée de Registre de type REG_DWORD nommée « SQLOSPartitioning » sous cette sous-clé.

  3. Définissez la valeur de cette entrée sur 0x0.

État

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Informations supplémentaires

Logiciel de règle

Titre de la règle

Description de la règle

Versions de produit par rapport auxquelles la règle est évaluée

System Center Advisor

SQL Server KB979779 de mise à jour manquantes pour empêcher l’altération de la mémoire du client SQL natif

Un fournisseur SQL Native Client qui correspond à SQL Server 2005 est présent sur ce serveur. Cette version antérieure de SQLNCLI.dll pourrait être chargée dans SQL Server 2008 et SQL Server 2008 R2 lors de l’énumération des fournisseurs et de la création de serveurs liés. Les builds spécifiques de SQL Server 2008 et SQL Server 2008 R2 peuvent rencontrer des problèmes et des blocages lors de la création ou de l’utilisation d’un serveur lié créé avec cette SQLNCLI.dll affectée. Mettez à jour les instances affectées de SQL Server 2008 et SQL Server 2008 R2 avec les correctifs requis ou évitez d’utiliser cette SQLNCLI.dll lors de la création de serveurs liés.

SQL Server 2008 SQL Server 2008 R2

Références

Pour plus d’informations sur le modèle de maintenance incrémentielle pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article dans la Base de connaissances Microsoft :

935897 Un modèle de maintenance incrémentielle est disponible auprès de l’équipe SQL Server pour fournir des correctifs logiciels pour les problèmessignalés. Pour plus d’informations sur le schéma de nommage des mises à jour SQL Server, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft :

822499Nouveau schéma d’affectation de noms pour les packagesde mise à jour logicielle Microsoft SQL Server Pour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft :

824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.