Em vez de procurar em
sys.objects
para isso você deve procurar em sys.types
ou sys.table_types
(que expõe adicionalmente o type_table_object_id
). SELECT name,
schema_id /*Will be the "test" schema id*/
FROM sys.types
WHERE is_table_type = 1
AND name = 'MyUserTableType'
Quando você cria um tipo definido pelo usuário, ele adiciona uma linha a
sys.sysscalartypes
com o esquema e nome fornecidos pelo usuário e uma linha para sys.sysschobjs
com um nome gerado pelo sistema no sys
esquema. O nome gerado pelo sistema é criado concatenando TT_
+ FriendlyName + _
+ Versão hexadecimal do id do objeto. As duas entidades estão relacionadas através de
sys.syssingleobjrefs
/*This query only works via the DAC*/
SELECT so.id AS object_id,
st.id AS user_type_id,
*
FROM sys.sysschobjs so
JOIN sys.syssingleobjrefs sor
ON sor.indepid = so.id
JOIN sys.sysscalartypes st
ON st.id = sor.depid
WHERE st.name = 'MyUserTableType'