sys.objects (Transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Berisi baris untuk setiap objek yang ditentukan pengguna dan cakupan skema yang dibuat dalam database, termasuk fungsi skalar skalar asli yang ditentukan pengguna.

Untuk informasi selengkapnya, lihat Scalar User-Defined Functions untuk OLTP In-Memory.

Catatan

sys.objects tidak menampilkan pemicu DDL, karena tidak terlingkup dalam skema. Semua pemicu, baik DML maupun DDL, ditemukan di sys.triggers. sys.triggers mendukung campuran aturan pencakupan nama untuk berbagai jenis pemicu.

Nama kolom Jenis data Deskripsi
nama nama sysname Nama objek.
object_id int Nomor identifikasi objek. Unik dalam database.
principal_id int ID pemilik individu, jika berbeda dari pemilik skema. Secara default, objek yang terkandung skema dimiliki oleh pemilik skema. Namun, pemilik alternatif dapat ditentukan dengan menggunakan pernyataan ALTER AUTHORIZATION untuk mengubah kepemilikan.

Adalah NULL jika tidak ada pemilik individu alternatif.

Adalah NULL jika jenis objek adalah salah satu dari berikut ini:

C = Batasan CHECK

D = DEFAULT (batasan atau berdiri sendiri)

F = Batasan KUNCI ASING

PK = batasan KUNCI PRIMER

R = Aturan (gaya lama, berdiri sendiri)

TA = Pemicu assembly (CLR-integration)

TR = pemicu SQL

UQ = Batasan UNIK

EC = Batasan Edge
schema_id int ID skema tempat objek berada.

Objek sistem dengan cakupan skema selalu terkandung dalam sys atau skema INFORMATION_SCHEMA.
parent_object_id int ID objek tempat objek ini berada.

0 = Bukan objek anak.
jenis char(2) Jenis objek:

AF = Fungsi agregat (CLR)

C = Batasan CHECK

D = DEFAULT (batasan atau berdiri sendiri)

F = Batasan KUNCI ASING

FN = SQL fungsi skalar

FS = Assembly (CLR) fungsi skalar

FT = Assembly (CLR) fungsi bernilai tabel

IF = SQL fungsi bernilai tabel sebaris

IT = Tabel internal

P = prosedur tersimpan SQL

PC = Prosedur tersimpan Assembly (CLR)

PG = Panduan paket

PK = batasan KUNCI PRIMER

R = Aturan (gaya lama, berdiri sendiri)

RF = Prosedur filter replikasi

S = Tabel dasar sistem

SN = Sinonim

SO = Objek urutan

U = Tabel (ditentukan pengguna)

V = Tampilan

EC = Batasan Edge



Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

SQ = Antrean layanan

TA = Pemicu DML Assembly (CLR)

TF = SQL fungsi bernilai tabel

TR = pemicu DML SQL

TT = Jenis tabel

UQ = Batasan UNIK

X = Prosedur tersimpan yang diperluas



Berlaku untuk: SQL Server 2014 (12.x) dan yang lebih baru, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).

ST = STATS_TREE



Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).

ET = Tabel Eksternal
type_desc nvarchar(60) Deskripsi jenis objek:

AGGREGATE_FUNCTION

CHECK_CONSTRAINT

CLR_SCALAR_FUNCTION

CLR_STORED_PROCEDURE

CLR_TABLE_VALUED_FUNCTION

CLR_TRIGGER

DEFAULT_CONSTRAINT

EXTENDED_STORED_PROCEDURE

FOREIGN_KEY_CONSTRAINT

INTERNAL_TABLE

PLAN_GUIDE

PRIMARY_KEY_CONSTRAINT

REPLICATION_FILTER_PROCEDURE

ATURAN

SEQUENCE_OBJECT



Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

SERVICE_QUEUE

SQL_INLINE_TABLE_VALUED_FUNCTION

SQL_SCALAR_FUNCTION

SQL_STORED_PROCEDURE

SQL_TABLE_VALUED_FUNCTION

SQL_TRIGGER

SINONIM

SYSTEM_TABLE

TABLE_TYPE

UNIQUE_CONSTRAINT

USER_TABLE

TAMPILAN
create_date datetime Tanggal objek dibuat.
modify_date datetime Tanggal objek terakhir diubah dengan menggunakan pernyataan ALTER. Jika objek adalah tabel atau tampilan, modify_date juga berubah saat indeks pada tabel atau tampilan dibuat atau diubah.
is_ms_shipped bit Objek dibuat oleh komponen SQL Server internal.
is_published bit Objek dipublikasikan.
is_schema_published bit Hanya skema objek yang dipublikasikan.

Keterangan

Anda dapat menerapkan fungsi bawaan OBJECT_ID, OBJECT_NAME, dan OBJECTPROPERTY() ke objek yang ditampilkan di sys.objects.

Ada versi tampilan ini dengan skema yang sama, yang disebut sys.system_objects, yang menunjukkan objek sistem. Ada tampilan lain yang disebut sys.all_objects yang menunjukkan objek sistem dan pengguna. Ketiga tampilan katalog memiliki struktur yang sama.

Dalam versi SQL Server ini, indeks yang diperluas, seperti indeks XML atau indeks spasial, dianggap sebagai tabel internal di sys.objects (jenis = IT dan type_desc = INTERNAL_TABLE). Untuk indeks yang diperluas:

  • nama adalah nama internal tabel indeks.

  • parent_object_id adalah object_id tabel dasar.

  • is_ms_shipped, is_published, dan kolom is_schema_published diatur ke 0.

Tampilan sistem berguna terkait
Subset objek dapat dilihat dengan menggunakan tampilan sistem untuk jenis objek tertentu, seperti:

Izin

Visibilitas metadata dalam tampilan katalog terbatas pada securable yang dimiliki pengguna atau di mana pengguna telah diberi beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Contoh

A. Mengembalikan semua objek yang telah dimodifikasi dalam N hari terakhir

Sebelum Anda menjalankan kueri berikut, ganti <database_name> dan <n_days> dengan nilai yang valid.

USE <database_name>;  
GO  
SELECT name AS object_name   
  ,SCHEMA_NAME(schema_id) AS schema_name  
  ,type_desc  
  ,create_date  
  ,modify_date  
FROM sys.objects  
WHERE modify_date > GETDATE() - <n_days>  
ORDER BY modify_date;  
GO  

B. Mengembalikan parameter untuk prosedur atau fungsi tersimpan tertentu

Sebelum Anda menjalankan kueri berikut, ganti <database_name> dan <schema_name.object_name> dengan nama yang valid.

USE <database_name>;  
GO  
SELECT SCHEMA_NAME(schema_id) AS schema_name  
    ,o.name AS object_name  
    ,o.type_desc  
    ,p.parameter_id  
    ,p.name AS parameter_name  
    ,TYPE_NAME(p.user_type_id) AS parameter_type  
    ,p.max_length  
    ,p.precision  
    ,p.scale  
    ,p.is_output  
FROM sys.objects AS o  
INNER JOIN sys.parameters AS p ON o.object_id = p.object_id  
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')  
ORDER BY schema_name, object_name, p.parameter_id;  
GO  

C. Mengembalikan semua fungsi yang ditentukan pengguna dalam database

Sebelum Anda menjalankan kueri berikut, ganti <database_name> dengan nama database yang valid.

USE <database_name>;  
GO  
SELECT name AS function_name   
  ,SCHEMA_NAME(schema_id) AS schema_name  
  ,type_desc  
  ,create_date  
  ,modify_date  
FROM sys.objects  
WHERE type_desc LIKE '%FUNCTION%';  
GO  

D. Mengembalikan pemilik setiap objek dalam skema.

Sebelum Anda menjalankan kueri berikut, ganti semua kemunculan <database_name> dan <schema_name> dengan nama yang valid.

USE <database_name>;  
GO  
SELECT 'OBJECT' AS entity_type  
    ,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name  
    ,name   
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'  
UNION   
SELECT 'TYPE' AS entity_type  
    ,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name  
    ,name   
FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>'   
UNION  
SELECT 'XML SCHEMA COLLECTION' AS entity_type   
    ,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name  
    ,xsc.name   
FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s  
    ON s.schema_id = xsc.schema_id  
WHERE s.name = '<schema_name>';  
GO  

Lihat juga

Tampilan Katalog (Transact-SQL)
sys.all_objects (SQL Bertransaksi)
sys.system_objects (SQL Bertransaksi)
sys.triggers (Transact-SQL)
Tampilan Katalog Objek (SQL Bertransaksi)
Tanya Jawab Umum Mengkueri Katalog Sistem SQL Server
sys.internal_tables (SQL Bertransaksi)