Zamiast szukać w sys.objects
w tym celu powinieneś zajrzeć do sys.types
lub sys.table_types
(co dodatkowo ujawnia 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'
Kiedy tworzysz typ zdefiniowany przez użytkownika, dodaje on wiersz do sys.sysscalartypes
z podanym przez użytkownika schematem i nazwą oraz wierszem do sys.sysschobjs
z nazwą wygenerowaną przez system w sys
schemat. Wygenerowana przez system nazwa jest tworzona przez połączenie TT_
+ Przyjazna nazwa + _
+ Wersja szesnastkowa identyfikatora obiektu.
Te dwie jednostki są powiązane ze sobą poprzez 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'