Anstatt in sys.objects
zu suchen für diese sollten Sie in sys.types
suchen oder sys.table_types
(was zusätzlich die type_table_object_id
verfügbar macht ).
SELECT name,
schema_id /*Will be the "test" schema id*/
FROM sys.types
WHERE is_table_type = 1
AND name = 'MyUserTableType'
Wenn Sie einen benutzerdefinierten Typ erstellen, fügt er eine Zeile zu sys.sysscalartypes
hinzu mit dem vom Benutzer bereitgestellten Schema und Namen und einer Zeile zu sys.sysschobjs
mit einem vom System generierten Namen im sys
Schema. Der vom System generierte Name wird durch Verketten von TT_
erstellt + FriendlyName + _
+ Hex-Version der Objekt-ID.
Die beiden Entitäten sind über sys.syssingleobjrefs
miteinander verbunden
/*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'