Kompatibilitätssichten (Transact-SQL)
Viele der Systemtabellen aus früheren Versionen von SQL Server sind jetzt in SQL Server 2005 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 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 in SQL Server 2005 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 |
Siehe auch
Verweis
Katalogsichten (Transact-SQL)
Zuordnen von SQL Server 2000-Systemtabellen zu SQL Server 2005-Katalogsichten
Andere Ressourcen
Abfragen des SQL Server-Systemkatalogs