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