Les données spatiales - sys.dm_db_objects_disabled_on_compatibility_level_change

 

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2012)ouiAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse

Répertorie les index et les contraintes qui seront désactivés suite à la modification du niveau de compatibilité dans SQL Server. Les index et les contraintes qui contiennent des colonnes calculées persistantes dont les expressions utilisent des types définis par l'utilisateur spatiaux sont désactivés après une mise à niveau ou une modification du niveau de compatibilité. Utilisez cette fonction de gestion dynamique pour déterminer l'impact d'un changement de niveau de compatibilité.

S’applique aux: SQL Server (SQL Server 2012 via version actuelle, Base de données SQL.

Topic link icon Conventions de la syntaxe Transact-SQL

sys.dm_db_objects_disabled_on_compatibility_level_change ( compatibility_level )   

COMPATIBILITY_LEVEL
int qui identifie le niveau de compatibilité que vous souhaitez définir.

Nom de colonneType de donnéesDescription
(classe)int1 = contraintes

7 = index et segments
class_descnvarchar (60)OBJECT ou COLUMN pour les contraintes

INDEX pour les index et les segments
major_idintOBJECT ID des contraintes

OBJECT ID de la table qui contient des index et des segments
minor_idintNULL pour les contraintes

Index_id pour les index et les segments
dépendancenvarchar (60)Description de la dépendance qui provoque la désactivation de la contrainte ou de l'index. Les mêmes valeurs sont également utilisées dans les avertissements générés pendant la mise à niveau. En voici quelques exemples :

« space » pour un type intrinsèque

« geometry » pour un type défini par l'utilisateur système

« geography::Parse » pour une méthode d'un type défini par l'utilisateur système

Les colonnes calculées persistantes qui utilisent des fonctions intrinsèques sont désactivées lorsque le niveau de compatibilité est modifié. En outre, les colonnes calculées persistantes qui utilisent une méthode de type geometry ou geography sont désactivées lorsqu'une base de données est mise à niveau.

Quelles sont les fonctions qui provoquent la désactivation des colonnes calculées persistantes ?

Lorsque les fonctions suivantes sont utilisées dans l'expression d'une colonne calculée persistante, elles entraînent la désactivation des index et des contraintes qui font référence à ces colonnes lorsque le niveau de compatibilité est modifié de 80 à 90 :

  • IsNumeric

Lorsque les fonctions suivantes sont utilisées dans l'expression d'une colonne calculée persistante, elles entraînent la désactivation des index et des contraintes qui font référence à ces colonnes lorsque le niveau de compatibilité est modifié de 100 à 110 ou plus :

  • SOUNDEX

  • Geography :: GeomFromGML

  • Geography :: STGeomFromText

  • Geography :: STLineFromText

  • Geography :: STPolyFromText

  • Geography :: STMPointFromText

  • Geography :: STMLineFromText

  • Geography :: STMPolyFromText

  • Geography :: STGeomCollFromText

  • Geography :: STGeomFromWKB

  • Geography :: STLineFromWKB

  • Geography :: STPolyFromWKB

  • Geography :: STMPointFromWKB

  • Geography :: STMLineFromWKB

  • Geography :: STMPolyFromWKB

  • Geography :: STUnion

  • Geography :: STIntersection

  • Geography :: STDifference

  • Geography :: STSymDifference

  • Geography :: STBuffer

  • Geography :: BufferWithTolerance

  • Geography :: analyser

  • Geography :: réduire

Comportement des objets désactivés

Index

Si l’index cluster est désactivé, ou si un index non cluster est forcé, l’erreur suivante est levée : « le processeur de requêtes ne peut pas créer de plan car l’index ' %. *%.ls sur la table ou la vue ' %. *%.ls est désactivé. » Pour réactiver ces objets, reconstruisez les index après la mise à niveau en appelant ALTER INDEX ON... RECONSTRUIRE.

Segments de mémoire

Si une table avec un segment désactivé est utilisée, l'erreur suivante est levée. Pour réactiver ces objets, reconstruisez après la mise à niveau en appelant ALTER INDEX ALL ON... RECONSTRUIRE.

// ErrorNumber: 8674  
// ErrorSeverity: EX_USER  
// ErrorFormat: The query processor is unable to produce a plan because the table or view '%.*ls' is disabled.  
// ErrorCause: The table has a disabled heap.   
// ErrorCorrectiveAction: Rebuild the disabled heap to enable it.   
// ErrorInserts: table or view name   
// ErrorOwner: mtintor   
// ErrorFirstProduct: SQL11  

Si vous essayez de reconstruire le segment lors d’une opération en ligne, une erreur est générée.

Les contraintes CHECK et des clés étrangères

Les contraintes de validation et les clés étrangères désactivées ne déclenchent pas d'erreur. Toutefois, les contraintes ne sont pas appliquées lorsque des lignes sont modifiées. Pour réactiver ces objets, vérifiez les contraintes après la mise à niveau en appelant ALTER TABLE... CONTRAINTE CHECK.

Colonnes calculées persistantes

Comme il est impossible de désactiver une colonne unique, la table entière est désactivée grâce à la désactivation de l'index cluster ou du segment.

Permissions

Requiert l'autorisation VIEW DATABASE STATE.

L’exemple suivant illustre une requête sur sys.dm_db_objects_disabled_on_compatibility_level_change pour rechercher les objets affectés par la modification du niveau de compatibilité à 120.

SELECT * FROM sys.dm_db_objects_disabled_on_compatibility_level_change(120);  
GO  
  

Ajouts de la communauté

AJOUTER
Afficher: