sql >> Databáze >  >> RDS >> Sqlserver

SQL Server vytvořit uživatelem definované typy tabulek se schématem nefunguje správně

Místo hledání v sys.objects tyto byste měli hledat v sys.types nebo sys.table_types (což navíc odhaluje 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'

Když vytvoříte uživatelsky definovaný typ, přidá se řádek do sys.sysscalartypes s uživatelem zadaným schématem a názvem a řádkem sys.sysschobjs se systémem vygenerovaným jménem v sys schéma. Systémem generovaný název je vytvořen zřetězením TT_ + FriendlyName + _ + Hexadecimální verze ID objektu.

Tyto dvě entity spolu souvisí prostřednictvím 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. Zrychlete test rozsahu pro klíčové hodnoty vnořené v poli objektů jsonb

  2. mySQL najít dupy a odstranit je

  3. mysql.connector.errors.ProgrammingError:Selhalo zpracování parametrů formátu; „seznam“ Pythonu nelze převést na typ MySQL

  4. budování Aplikace založená na rolích