Symptômes
Supposez que vous disposez d’une instruction Update qui fait référence à une fonction de partition qui n’existe pas en utilisant le mot clé $partition dans Microsoft SQL Server 2014, 2016 ou 2017. Par exemple,
UPDATE nom_table Set nomcolonne= « XYZ » WHERE $partition. NonExistingPartitionFunction (ColumnName) = 1
Dans ce cas, SQL Server n’effectue pas de mise à jour ou renvoie un message d’erreur indiquant que l’objet NonExistingPartitionFunction n’existe pas. Toutefois, du point de vue de l’utilisateur, l’instruction Update est exécutée correctement, mais elle a échoué.
Cause
Lorsque vous exécutez un lot, SQL Server risque de procéder à la résolution de nom différé (DNR). Dans le cadre de ce processus, SQL Server ne génère pas immédiatement une erreur lorsqu’il rencontre un objet inexistant et qu’il s’attend à ce que l’objet soit créé par le module ou par lot avant l’exécution de l’instruction qui fait référence à cet objet. Pour les fonctions de partition, SQL Server ne gère pas correctement DNR.
Informations supplémentaires
Pour plus d’informations sur DNR, reportez-vous à la résolution de nom différé.
Résolution
Ce problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :
Mise à jour cumulative 8 pour SQL Server 2016 SP1
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Dernière mise à jour cumulative pour SQL Server 2016
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.
Références
Apprenez-en davantage sur la terminologieutilisée par Microsoft pour décrire les mises à jour logicielles.