Invece di cercare in sys.objects
per questi dovresti cercare in sys.types
o sys.table_types
(che espone inoltre il 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 crei un tipo definito dall'utente, viene aggiunta una riga a sys.sysscalartypes
con lo schema e il nome forniti dall'utente e una riga a sys.sysschobjs
con un nome generato dal sistema in sys
schema. Il nome generato dal sistema viene creato concatenando TT_
+ Nome descrittivo + _
+ Versione esadecimale dell'ID oggetto.
Le due entità sono correlate insieme tramite 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'