Accès aux métadonnées, niveaux d'isolement et indicateurs de verrou

SQL Server ne garantit pas que les indicateurs de verrou sont respectés dans les requêtes ayant accès aux métadonnées à partir d'affichages catalogue, de vues de compatibilité, de vues de schémas d'informations et de fonctions intégrées générant des métadonnées.

En interne, le Moteur de base de données SQL Server ne respecte que le niveau d'isolement READ COMMITTED pour l'accès aux métadonnées. Quand une transaction a un niveau d'isolement correspondant, par exemple, à SERIALIZABLE et qu'un accès aux métadonnées est tenté dans le cadre de cette transaction à partir de vues de catalogue ou de fonctions intégrées générant des métadonnées, les requêtes sont exécutées jusqu'à ce qu'elles soient achevées en tant que READ COMMITTED. Dans le cas d'un isolement de capture, l'accès aux métadonnées peut toutefois échouer à cause d'opérations DDL simultanées. Étant donné que les métadonnées sont dépourvues de version, l'accès aux éléments suivants peut échouer en cas d'isolement de capture :

  • vues de catalogue ;

  • vues de compatibilité ;

  • vues des schémas d'informations ;

  • fonctions intégrées générant des métadonnées ;

  • groupe sp_help de procédures stockées ;

  • procédures de catalogues SQL Server Native Client ;

  • vues et fonctions de gestion dynamique.

Pour plus d'informations sur l'isolement de capture, consultez Niveaux d'isolation du moteur de base de données.

Le tableau suivant comporte une synthèse d'accès aux métadonnées pour les différents niveaux d'isolement.

Niveau d'isolement

Prise en charge

Respect

READ UNCOMMITTED

Non

Non garanti

READ COMMITTED

Oui

Oui

REPEATABLE READ

Non

Non

SNAPSHOT ISOLATION

Non

Non

SERIALIZABLE

Non

Non