Symptômes
Prenons l’exemple du scénario suivant :
-
Vous avez un serveur lié dans Microsoft SQL Server 2008 R2.
-
Il existe une table sur le serveur lié qui comporte une colonne de type smalldatetime .
-
Vous exécutez une instruction Insert ou insert into pour insérer un enregistrement qui contient les données de type DateTime dans la table.
Dans ce scénario, l’instruction échoue. En outre, le message d'erreur suivant s'affiche :
Fournisseur OLE DB « SQLNCLI10 » pour le serveur lié «LinkServerName » a renvoyé une erreur « opérations OLE DB en plusieurs étapes générées ». Vérifiez chaque valeur d’État OLE DB, le cas échéant. Aucun travail n’a été réalisé.». MSG 7344, niveau 16, état 1, ligne 1La fournisseur OLE DB « SQLNCLI10 » pour le serveur lié «LinkServerName» n’a pas pu être inséré dans la table «TableName » en raison de la colonne «nomcolonne». Échec de la conversion, car la valeur Data a dépassé le type de données utilisé par le fournisseur.
Cause
Ce problème se produit en raison d’un problème de mappage de type de données dans SQL Server.
Résolution
Informations sur les mises à jour cumulatives
SQL Server 2008 R2 Service Pack 2
Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 3. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2 Service Pack 2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2754552 Package de mise à jour cumulative 3 pour SQL Server 2008 R2 Service Pack 2Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version de correctif du Service Pack 2 SQL Server 2008 R2 antérieur. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2730301 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 2
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Solution de contournement
Pour contourner ce problème, utilisez l’une des méthodes suivantes :
-
Convertit les données de type DateTime en type smalldatetime dans l’instruction.
-
Remplacez la colonne type smalldatetime par le type DateTime sur le serveur lié.