Vues de compatibilité (Transact-SQL)
Une grande partie des tables système des versions antérieures de SQL Server ont été regroupées dans un ensemble de vues dans SQL Server 2005. Ces vues sont connues sous le nom de vues de compatibilité car elles ont été exclusivement conçues à des fins de compatibilité descendante. Elles exposent les mêmes métadonnées que celles qui étaient disponibles dans SQL Server 2000. En revanche, elles n'exposent pas les métadonnées liées aux fonctionnalités introduites dans SQL Server 2005. Par conséquent, lorsque vous utilisez une nouvelle fonctionnalité (comme Service Broker ou le partitionnement), vous devez impérativement utiliser les affichages catalogue.
Il existe une autre raison justifiant la mise à niveau vers les affichages catalogue : les colonnes des vues de compatibilité qui stockent les ID d'utilisateur et de type peuvent retourner la valeur NULL ou déclencher des dépassements arithmétiques. En effet, dans SQL Server 2005, vous pouvez créer plus de 32 767 utilisateurs, groupes, rôles et types de données. Imaginons par exemple que vous devez créer 32 768 utilisateurs, puis exécuter la requête SELECT * FROM sys.sysusers
; si l'option ARITHABORT est activée (ON), la requête échoue en raison d'une erreur de dépassement arithmétique. Si l'option ARITHABORT est désactivée (OFF), la colonne uid retourne NULL.
Pour éviter ces problèmes, nous vous recommandons d'utiliser les nouveaux affichages catalogue qui peuvent gérer le nombre accru d'ID d'utilisateur et d'ID de type. Le tableau suivant recense les colonnes sujettes à ce dépassement.
Nom de colonne | Vue de compatibilité | Vue SQL Server 2005 |
---|---|---|
xusertype |
syscolumns |
sys.columns |
usertype |
syscolumns |
sys.columns |
memberuid |
sysmembers |
sys.database_role_members |
groupuid |
sysmembers |
sys.database_role_members |
uid |
sysobjects |
sys.objects |
uid |
sysprotects |
|
grantor |
sysprotects |
|
xusertype |
systypes |
sys.types |
uid |
systypes |
sys.types |
uid |
sysusers |
sys.database_principals |
altuid |
sysusers |
sys.database_principals |
gid |
sysusers |
sys.database_principals |
uid |
syscacheobjects |
sys.dm_exec_plan_attributes |
uid |
sysprocesses |
sys.dm_exec_requests |
Voir aussi
Référence
Affichages catalogue (Transact-SQL)
Mappage des tables système SQL Server 2000 avec les vues du système SQL Server 2005
Autres ressources
Interrogation des catalogues système de SQL Server