viernes, 11 de enero de 2013

sys.syscolumns o sys.columns parece lo mismo pero no lo es

Hoy he tenido un problema con   sys.syscolumns, la primera vez que lo vi pensaba que era sys.columns (parecido pero no es lo mismo)

La documentación del msdn deja mucho que desear para el sys.syscolumns
xtype - tinyint - Physical storage type from sys.types.
type - tinyint - Physical storage type from sys.types

Con esa explicación parece que debería tener el mismo valor , pero no es cierto en la columna type del sys.syscolumns hay valores como 0 o 39 que no están en el sys.types, en realidad esta en el sys.systypes (otra vez parece lo mismo pero no lo és)

Después de dar unas vueltas encontré las diferencias y cual tenia que usar

Catalog View es lo que se debería usar

En sys.syscolumns (Transact-SQL)
Tenia la siguiente nota :
"This SQL Server 2000 system table is included as a view for backward compatibility. We recommend that you use the current SQL Server system views instead. To find the equivalent system view or views, see Mapping SQL Server 2000 System Tables to SQL Server 2005 System Views. This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature."

MSDN equivalencias

Ejemplos para obtener información del catalogo

No hay comentarios:

Publicar un comentario