Obtener los campos de un tipo en SQL Server

Os dejo una consulta SQL con la que podremos obtener los nombres de los campos de un tipo específico de datos en una tabla alojada en una base de datos SQL Server.

SELECT SYSCOLUMNS.name as field
FROM SYSOBJECTS
INNER JOIN SYSCOLUMNS ON SYSOBJECTS.ID = SYSCOLUMNS.ID
LEFT JOIN SYSTYPES ON SYSTYPES.usertype = SYSCOLUMNS.usertype
WHERE SYSOBJECTS.xtype = 'U'
and SYSOBJECTS.name = '$vTabla'
and SYSCOLUMNS.xtype = '$vTipo'

Dónde vTabla es la tabla de la base de datos de la que queremos obtener los campos y vTipo el tipo de datos.

Valores de los tipos de datos alojados en la tabla SYSTYPES

Os dejo los principales:SQL-Server-2008-R2-Service-Pack-1-SP1-RTM-2

INTEGER - 56
SMALLDATETIME - 58
TINYINT - 48
BOOLEAN - 104
DECIMAL - 106
CHAR - 175
DATETIME - 61
VARCHAR - 167
TEXT - 35
MULTIPLE - 99

Comentarios