Kompatibilitätssichten (Transact-SQL)
Viele der Systemtabellen aus früheren Versionen von SQL Server sind jetzt als eine Gruppe von Sichten implementiert worden. Diese Sichten werden als Kompatibilitätssichten bezeichnet und sollen ausschließlich für die Abwärtskompatibilität verwendet werden. Die Kompatibilitätssichten machen die gleichen Metadaten verfügbar wie in SQL Server 2000. Die Kompatibilitätssichten machen jedoch keine Metadaten bezüglich der in SQL Server 2005 und höher neu eingeführten Features verfügbar. Wenn Sie also neue Features, wie z. B. Service Broker oder die Partitionierung, verwenden, müssen Sie Katalogsichten verwenden.
Ein weiterer Grund für eine Aktualisierung auf die Katalogsichten besteht darin, dass Kompatibilitätssichtspalten, in denen Benutzer-IDs und Typ-IDs gespeichert werden, evtl. NULL zurückgeben oder arithmetische Überläufe auslösen. Dies liegt daran, dass Sie mehr als 32.767 Benutzer, Gruppen und Rollen sowie 32.767 Datentypen erstellen können. Angenommen, Sie würden 32.768 Benutzer erstellen und folgende Abfrage ausführen: SELECT * FROM sys.sysusers. Wenn ARITHABORT auf ON festgelegt ist, schlägt die Abfrage aufgrund eines arithmetischen Überlauffehlers fehl. Wenn ARITHABORT auf OFF gesetzt ist, gibt die uid-Spalte NULL zurück.
Zur Vermeidung dieser Probleme wird die Verwendung der neuen Katalogsichten empfohlen, die die erhöhte Anzahl von Benutzer-IDs und Typ-IDs verarbeiten können. In der folgenden Tabelle sind die Spalten aufgeführt, bei denen es zu einem solchen Überlauf kommen kann.
Spaltenname |
Kompatibilitätssicht |
SQL Server 2005-Sicht |
---|---|---|
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 |