Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server tạo các loại bảng do người dùng xác định với lược đồ không hoạt động bình thường

Thay vì tìm trong sys.objects đối với những thứ này, bạn nên xem trong sys.types hoặc sys.table_types (điều này cũng làm lộ ra 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'

Khi bạn tạo một kiểu do người dùng xác định, nó sẽ thêm một hàng vào sys.sysscalartypes với lược đồ và tên do người dùng cung cấp và một hàng tới sys.sysschobjs với tên do hệ thống tạo trong sys lược đồ. Tên do hệ thống tạo được tạo bằng cách ghép TT_ + FriendlyName + _ + Phiên bản hex của id đối tượng.

Hai thực thể có liên quan với nhau qua 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. “Truy vấn không được phép trong Waitfor” Lỗi 101 trong SQL Server

  2. Tìm kiếm nâng cao với khoảng cách bằng NHibernate và SQL Server Địa lý

  3. Làm cách nào để thực hiện câu lệnh CẬP NHẬT với JOIN trong SQL Server?

  4. Cách chỉnh sửa đặc tả danh tính trong SQL Server 2008

  5. Sắp xếp Dấu đầu dòng trong Cơ sở dữ liệu