Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Många av systemtabellerna från tidigare versioner av SQL Server är nu implementerade som en uppsättning vyer. Dessa vyer kallas kompatibilitetsvyer och är avsedda endast för bakåtkompatibilitet. Kompatibilitetsvyerna exponerar samma metadata som fanns tillgänglig i SQL Server 2000 (8.x). Kompatibilitetsvyerna exponerar dock inte någon metadata relaterad till funktioner som introduceras i SQL Server 2005 (9.x) och senare. Därför måste du när du använder nya funktioner, som Service Broker eller partitionering, byta till att använda katalogvyerna.
En annan anledning till att uppgradera till katalogvyerna är att kompatibilitetsvykolumner som lagrar användar-ID och typ-ID kan returnera NULL eller utlösa aritmetiska överflöden. Detta beror på att du kan skapa mer än 32 767 användare, grupper och roller, samt 32 767 datatyper. Till exempel, om du skapar 32 768 användare och sedan kör följande fråga: SELECT * FROM sys.sysusers. Om ARITHABORT är satt till PÅ misslyckas frågan med ett aritmetiskt överflödesfel. Om ARITHABORT är satt till AV returnerar uid-kolumnen NULL.
För att undvika dessa problem rekommenderar vi att du använder de nya katalogvyerna som kan hantera det ökade antalet användar-ID och typ-ID:n. Följande tabell listar de kolumner som omfattas av detta överflöd.
| Kolumnnamn | Kompatibilitetsvy | SQL Server 2005-vy |
|---|---|---|
| xusertype | syskolumner | sys.columns |
| UserType | syskolumner | sys.columns |
| Memberuid | sysmembers | sys.database_role_members |
| Groupuid | sysmembers | sys.database_role_members |
| Uid | sysobjects | sys.objects |
| Uid | sysprotects |
sys.database_permissions sys.server_permissions |
| Beviljaren | sysprotects |
sys.database_permissions sys.server_permissions |
| 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 |
När de refereras i en användardatabas är systemtabeller som annonserades som föråldrade i SQL Server 2000 (såsom syslanguages eller syscacheobjects) nu bundna till back-kompatibilitetsvyn i sys-schemat . Eftersom SQL Server 2000-systemtabellerna har föråldrats för flera versioner anses denna ändring inte vara en bristfällig förändring.
Exempel: Om en användare skapar en användartabell kallad syslanguages i en användardatabas i SQL Server 2008, skulle satsen SELECT * from dbo.syslanguages; i den databasen returnera värdena från användartabellen. Från och med SQL Server 2012 kommer denna metod att returnera data från systemvyn sys.syslanguages.
Se även
katalogvyer (Transact-SQL)
Mappning av systemtabeller till systemvyer (Transact-SQL)