Vistas de compatibilidad (Transact-SQL)

Muchas de las tablas del sistema de versiones anteriores de SQL Server se implementan ahora como un conjunto de vistas. Se conocen como vistas de compatibilidad y sólo se proporcionan por compatibilidad con versiones anteriores. Las vistas de compatibilidad exponen los mismos metadatos que estaban disponibles en SQL Server 2000. No obstante, las vistas de compatibilidad no exponen ninguno de los metadatos relacionados con las características incluidas en SQL Server 2005 y versiones posteriores. Por tanto, cuando utilice estas nuevas características, como Service Broker o las particiones, deberá cambiar a la utilización de las vistas de catálogo.

Otro motivo para actualizar a las vistas de catálogo es que es posible que las columnas de vista de compatibilidad que almacenan los Id. de usuario y de tipo devuelvan valores NULL o activen desbordamientos aritméticos. Esto se debe a que se pueden crear más de 32.767 usuarios, grupos y funciones, y 32.767 tipos de datos. Por ejemplo, si fuera a crear 32.768 usuarios y después ejecutara la siguiente consulta: SELECT * FROM sys.sysusers Si ARITHABORT está establecido en ON, la consulta provocará un error de desbordamiento aritmético. Si el valor de ARITHABORT es OFF, la columna uid devolverá valores NULL.

Para evitar estos problemas, se recomienda utilizar las nuevas vistas de catálogo, que pueden procesar ese mayor número de identificadores de usuario y de tipo. La tabla siguiente indica las columnas que pueden presentar este desbordamiento.

Nombre de la columna

Vista de compatibilidad

Vista de 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