Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server membuat Jenis Tabel Buatan Pengguna dengan skema tidak berfungsi dengan benar

Alih-alih mencari di sys.objects untuk ini Anda harus mencari di sys.types atau sys.table_types (yang juga memperlihatkan 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'

Saat Anda membuat tipe yang ditentukan pengguna, ia menambahkan baris ke sys.sysscalartypes dengan skema dan nama yang disediakan pengguna dan baris ke sys.sysschobjs dengan nama yang dihasilkan sistem di sys skema. Nama yang dihasilkan sistem dibuat dengan menggabungkan TT_ + FriendlyName + _ + Versi hex dari id objek.

Kedua entitas terkait bersama melalui 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. Koma dalam Data CSV

  2. SQL Query untuk mendapatkan hasil agregat dalam pemisah koma bersama dengan grup demi kolom di SQL Server

  3. penggabungan nvarchar / indeks / nvarchar (maks) perilaku yang tidak dapat dijelaskan

  4. Tetapkan Batas untuk Baris Tabel Dalam SQL

  5. Bagaimana cara mengekstrak substring khusus ini di SQL Server?