Vous recevez un message d’erreur « Erreur 605 » lorsque vous exécutez une requête avec l’indicateur d’optimiseur NOLOCK ou vous le niveau d’isolement de transaction définissez à READ UNCOMMITTED dans SQL Server

Résumé

Exécuter une requête avec l’indicateur d’optimiseur NOLOCK ou affectant le niveau d’isolation READ UNCOMMITTED, peut générer des messages d’erreur 605 transitoire.

Plus d'informations

En règle générale, l’accès aux données qui est en cours de modification par soit un autre utilisateur ou processus est refusé en raison des verrous sur les données. Toutefois, les commandes NOLOCK et READ UNCOMMITTED activer une requête lire des données qui sont verrouillées par un autre utilisateur. Cela correspond à une lecture incorrecte parce que vous pouvez lire les valeurs qui n’ont pas encore été validées et qui sont susceptibles d’être modifiées.

Lorsqu’une requête utilisant NOLOCK ou READ UNCOMMITTED tente de lire les données qui sont déplacées ou modifiées par un autre utilisateur, une erreur 605. Le niveau de gravité de le 605 erreur pendant une opération de lecture de données modifiée est 12 par rapport à un niveau de gravité de 21 lors de la lecture des données validées. En cas d’erreur 605 qui possède un niveau de gravité de 12, il s’agit vraisemblablement d’une erreur 605 transitoire et n’indique pas un problème de cohérence de base de données. Pour vérifier qu’il s’agit d’une erreur 605 transitoire, exécutez à nouveau la requête ultérieurement.

Si l’erreur persiste, supprimer l’indicateur NOLOCK ou le niveau d’isolation de transaction la valeur READ COMMITTED et vérifiez qu’un niveau de 605 gravité 21 ne se produit pas. Une erreur de 605 niveau 21 indique une corruption de base de données possible. En cas d’erreur 605 niveau 21, reportez-vous à la documentation en ligne de SQL Server pour plus d’informations et contactez votre fournisseur de support principal pour obtenir de l’aide.
Propriétés

ID d'article : 235880 - Dernière mise à jour : 9 janv. 2017 - Révision : 1

Commentaires