In plaats van te zoeken in sys.objects
hiervoor moet je zoeken in sys.types
of sys.table_types
(die bovendien de type_table_object_id
blootlegt) ).
SELECT name,
schema_id /*Will be the "test" schema id*/
FROM sys.types
WHERE is_table_type = 1
AND name = 'MyUserTableType'
Wanneer u een door de gebruiker gedefinieerd type maakt, voegt het een rij toe aan sys.sysscalartypes
met het door de gebruiker opgegeven schema en de naam en een rij naar sys.sysschobjs
met een door het systeem gegenereerde naam in de sys
schema. De door het systeem gegenereerde naam wordt gemaakt door TT_
. aan elkaar te koppelen + FriendlyName + _
+ Hex-versie van object-ID.
De twee entiteiten zijn aan elkaar gerelateerd via 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'