KB2519358-FIX : erreur « la valeur entière est en dehors de la plage » lorsque vous passez une valeur bigint en tant qu’argument last_sync_version de la fonction CHANGETABLE dans SQL Server 2008 ou SQL Server 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 Service Pack 1 (SP1) et Microsoft SQL Server 2008 R2 comme un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans les versions antérieures de SQL Server 2008 SP1 et SOL Server 2008 R2.

Symptômes

Prenons l’exemple du scénario suivant :

  • Le suivi des modifications est activé sur une table dans SQL Server 2008 ou SQL Server 2008 R2.

  • Vous exécutez une requête qui utilise la fonction CHANGETABLE avec l’argument last_sync_version pour renvoyer des informations de suivi relatives aux modifications apportées à la table.

  • Une valeur bigint est transmise en tant qu’argument last_sync_version .

Par exemple, lorsque vous activez le suivi des modifications sur une table, vous exécutez la requête suivante :

SELECT * FROM CHANGETABLE(changes dbo.t1, 2222222222) as ct

Dans ce scénario, l’exécution de la requête échoue et vous recevez les informations suivantes :

MSG 1080, niveau 15, état 1, ligne 1La valeur entière la valeur bigint n’est pas comprise dans la plage.

Remarques

  • Le type de l’argument last_sync_version est défini comme bigint. Par conséquent, la requête est censée s’exécuter correctement.

  • la valeur bigint est un espace réservé qui représente la valeur bigint transmise en tant qu’argument last_sync_version .

Résolution

Informations sur les mises à jour cumulatives

SQL Server 2008 R2 Service Pack 1

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 1. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2544793 Package de mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 1Remarque 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 précédente du correctif SQL Server 2008 R2. 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 :

2567616 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 1

SQL Server 2008 Service Pack 2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 4 pour SQL Server 2008 Service Pack 2. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2527180 Package de mise à jour cumulative 4 pour SQL Server 2008 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 l’ancienne version du correctif SQL Server 2008. Microsoft vous recommande 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 :

2402659 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 2 Des correctifs Microsoft SQL Server 2008 sont créés pour des service packs SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2008 Service Pack 2 à une installation de SQL Server 2008 Service Pack 2. Par défaut, tout correctif fourni dans un service pack SQL Server est inclus dans le prochain Service Pack SQL Server.

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 7. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2507770 Package de mise à jour cumulative 7 pour SQL Server 2008 R2 Remarque 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 précédente du correctif SQL Server 2008 R2. 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 :

981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 13. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 SP1, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2497673 Package de mise à jour cumulative 13 pour SQL Server 2008 Service Pack 1 Remarque 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 précédente du correctif SQL Server 2008 SP1. 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 :

970365 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 1

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Solution de contournement

Pour contourner ce problème, créez une variable de type bigint, puis transmettez la variable en tant qu’argument last_sync_version de la fonction CHANGETABLE . Par exemple, vous pouvez exécuter la requête suivante :

DECLARE @v3 bigint = 2222222222SELECT * FROM CHANGETABLE(changes dbo.t1, @v3 ) as ct

Informations supplémentaires

Pour plus d’informations sur la fonction CHANGETABLE pour Transact-SQL, consultez le site Web de Microsoft Development Network (MSDN) suivant :

Informations générales sur la fonction CHANGETABLE pour Transact-SQL

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×