Viste di compatibilità (Transact-SQL)

Molte delle tabelle di sistema incluse nelle versioni precedenti di SQL Server sono implementate come set di viste in SQL Server 2005. Queste viste sono note come viste di compatibilità e sono disponibili solo per compatibilità con le versioni precedenti. Le viste di compatibilità espongono gli stessi metadati disponibili in SQL Server 2000, ma non espongono i metadati correlati a funzionalità introdotte in SQL Server 2005. Quando si utilizzano nuove funzionalità, ad esempio Service Broker o il partizionamento, è pertanto necessario passare all'utilizzo delle viste del catalogo.

Un altro motivo per eseguire l'aggiornamento alle viste del catalogo è rappresentato dal fatto che le colonne delle viste di compatibilità in cui sono archiviati ID utente e ID di tipo possono restituire NULL o attivare overflow aritmetici, dal momento che in SQL Server 2005 è possibile creare oltre 32.767 utenti, gruppi e ruoli e 32.767 tipi di dati. Se ad esempio è necessario creare 32.768 utenti e quindi eseguire la query SELECT * FROM sys.sysusers, in caso di impostazione di ARITHABORT su ON la query ha esito negativo e viene generato un errore di overflow aritmetico. Se ARITHABORT è impostato su OFF, la colonna UID restituisce NULL.

Per evitare questi problemi, è consigliabile utilizzare le nuove viste del catalogo in grado di gestire un numero più elevato di ID utente e ID di tipo. Nella tabella seguente sono elencate le colonne soggette a questo tipo di overflow.

Nome colonna Vista di compatibilità Vista di 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

  • sys.database_permissions
  • sys.server_permissions

grantor

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

Vedere anche

Riferimento

Viste del catalogo (Transact-SQL)
Mapping delle tabelle di sistema di SQL Server 2000 alle viste di sistema di SQL Server 2005

Altre risorse

Esecuzione di query nel catalogo di sistema di SQL Server

Guida in linea e informazioni

Assistenza su SQL Server 2005