sql >> Database >  >> RDS >> Sqlserver

SQL Server maakt door de gebruiker gedefinieerde tabeltypen waarbij het schema niet goed werkt

In plaats van te zoeken in sys.objects hiervoor moet je zoeken in sys.types of sys.table_types (die bovendien de type_table_object_id blootlegt) ).

SELECT name,
       schema_id /*Will be the "test" schema id*/
FROM   sys.types
WHERE  is_table_type = 1
       AND name = 'MyUserTableType'

Wanneer u een door de gebruiker gedefinieerd type maakt, voegt het een rij toe aan sys.sysscalartypes met het door de gebruiker opgegeven schema en de naam en een rij naar sys.sysschobjs met een door het systeem gegenereerde naam in de sys schema. De door het systeem gegenereerde naam wordt gemaakt door TT_ . aan elkaar te koppelen + FriendlyName + _ + Hex-versie van object-ID.

De twee entiteiten zijn aan elkaar gerelateerd via 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. Hoe krijg ik de delta voor user_id sinds de voorgaande maanden met oracle sql

  2. Node.js &MySQL - Fout:1251 - Client ondersteunt geen authenticatieprotocol aangevraagd door de server; overweeg een upgrade van de MySQL-client

  3. Problemen met het selecteren van een enkele willekeurige rij uit de MySQL-tabel

  4. Geef PHP-variabele door aan bootstrap modal