sys.objects (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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)