Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर स्कीमा के साथ उपयोगकर्ता-परिभाषित तालिका प्रकार बनाता है जो ठीक से काम नहीं कर रहा है

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' 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक तालिकाओं में SQL अद्वितीय बाधा

  2. SQL सर्वर में टेबल-वैल्यूड फंक्शन क्या है?

  3. tsql किसी फ़ंक्शन या स्टोर प्रक्रिया से तालिका लौटा रहा है

  4. SQL सर्वर प्रबंधन स्टूडियो 2012 में ऑटो वृद्धि प्राथमिक कुंजी

  5. SQL सर्वर 2008 डालने के बाद ट्रिगर चल रहा है, अद्यतन मूल तालिका को लॉक करता है