sys.objects
में देखने के बजाय इनके लिए आपको sys.types
. में देखना चाहिए या sys.table_types
(जो अतिरिक्त रूप से 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'
जब आप एक उपयोगकर्ता परिभाषित प्रकार बनाते हैं तो यह sys.sysscalartypes
. में एक पंक्ति जोड़ता है उपयोगकर्ता ने sys.sysschobjs
. को स्कीमा और नाम और एक पंक्ति प्रदान की है sys
. में सिस्टम जनरेटेड नाम के साथ स्कीमा। सिस्टम द्वारा उत्पन्न नाम TT_
. को जोड़कर बनाया गया है + FriendlyName + _
+ ऑब्जेक्ट आईडी का हेक्स संस्करण।
दोनों संस्थाएं 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'