Descobrindo o nome e o tipo de um User-Defined Type

Semana passada um amigo me questionou sobre como descobrir o nome e o tipo de uma User-Defined Type.

Para deixar registrado a tabela é a sys.systypes. Veja a query abaixo:

SELECT  name nometipo,
        xusertype idtipo,
        length tamanho
FROM    sys.systypes

Essa query retorna o nome do UDT, id e o comprimento do campo. Contudo se necessitarmos o campo físico de origem podemos criar um join entre a tabela com ela mesma utilizando o campo type. Veja a query.

SELECT  a.name nometipo ,
        a.xusertype idtipo ,
        a.length tamanho ,
        b.name nomefisico
FROM    sys.systypes a
        INNER JOIN VNDM.sys.systypes b ON a.type = b.type

Concluindo espero que esses dois scripts sejam uteis para futuras manutenções e obrigado aos amigos que mandam dúvidas.

Abraço, Rodrigo.

Author: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

Deixe uma resposta