KB4039776-FIX : comportement incorrect lorsque vous utilisez des tables optimisées de mémoire avec l’instruction « WHERE EXISTS » dans SQL Server 2016 ou 2017

Symptômes

Supposez que vous utilisez Microsoft SQL Server 2016 ou 2017. Lorsque vous traitez des transactions de données optimisées en mémoire à l’aide d’une variable de table optimisée pour la mémoire avec l’instruction Where Exists , il est possible que vous obteniez un résultat incorrect.

Par exemple :

Étape suivante : créez une base de données et un tableau optimisés pour la mémoire.

Démonstration de création de base de données

Créer une démonstration de base de données ajouter un groupe de demo_mod contient MEMORY_OPTIMIZED_DATA 

MODIFICATION de la démonstration de la base de données Ajoutez un fichier (Name = "demo_mod1", filename = 'C:\DATA\ demo_mod1 ') au groupe de fichiers demo_mod 

Utiliser la démo

Navigu

CRÉER un TYPE dbo. IN_MEMORY_TABLE_TYPE SOUS FORME DE TABLEAU

(source_col ent nul,

target_col ent non NULL

INDEX ix_InMemoryTable non GROUPés (target_col)

) AVEC (MEMORY_OPTIMIZED = ACTIVÉ)

NAVIGU

Étape2 : insérer des données et mettre à jour des données.

DÉCLAREz @t dbo. IN_MEMORY_TABLE_TYPE

INSÉRER des valeurs de @t (source_col, target_col) (10 ; 0), (0, 0)

Select * from @t

MISE à jour du jeu R1 target_col =-1 de @t R1

OÙ existe (SELECT * FROM @t R2 où r2.source_col > 0)

SELECT * FROM @t

NAVIGU

Step3 : vérifier les résultats.

Résultats réels : les lignes de la variable de tableau ne sont pas toutes @t mises à jour.

source_col | target_col

----------------------

10 | minute

0 | 0,4

Résultats attendus : toutes les lignes doivent être mises à jour de manière à target_col =-1.

source_col | target_col

----------------------

10 | minute

0 | minute.

Résolution

Ce problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :

      Mise à jour cumulative 1 pour SQL Server 2017 

      Mise à jour cumulative 5 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 2017

Dernières mises à jour cumulatives 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.

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.

×