sys.objects (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Berisi baris untuk setiap objek cakupan skema yang ditentukan pengguna yang dibuat dalam database, termasuk fungsi yang ditentukan pengguna skalar yang dikompilasi secara asli.
Untuk informasi selengkapnya, lihat Fungsi Yang Ditentukan Pengguna Skalar untuk OLTP Dalam Memori.
Catatan
sys.objects
tidak menampilkan pemicu DDL, karena tidak memiliki cakupan skema. Semua pemicu, baik DML maupun DDL, ditemukan di sys.triggers. sys.triggers
mendukung campuran aturan cakupan nama untuk berbagai jenis pemicu.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
name |
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 berisi skema dimiliki oleh pemilik skema. Namun, pemilik alternatif dapat ditentukan dengan menggunakan ALTER AUTHORIZATION pernyataan untuk mengubah kepemilikan.NULL jika tidak ada pemilik individu alternatif.Apakah NULL jika jenis objek adalah salah satu nilai berikut:C = Periksa batasanD = Default (batasan atau berdiri sendiri)F = Batasan kunci asingPK = Batasan kunci primerR = Aturan (gaya lama, berdiri sendiri)TA = Pemicu assembly (clr-integration)TR = Pemicu SQLUQ = Batasan unikEC = Batasan edge |
schema_id |
int | ID skema tempat objek terkandung. Objek sistem cakupan skema selalu terkandung dalam sys atau INFORMATION_SCHEMA skema. |
parent_object_id |
int | ID objek tempat objek ini berada.0 = Bukan objek anak. |
type |
char(2) | Jenis objek:AF = Fungsi agregat (CLR)C = Periksa batasanD = Default (batasan atau berdiri sendiri)F = Batasan kunci asingFN = Fungsi skalar SQLFS = Assembly (CLR) fungsi skalarFT = Fungsi bernilai tabel Assembly (CLR)IF = Fungsi bernilai tabel sebaris SQL (TVF)IT = Tabel internalP = Prosedur tersimpan SQLPC = Prosedur tersimpan assembly (CLR)PG = Panduan rencanaPK = Batasan kunci primerR = Aturan (gaya lama, berdiri sendiri)RF = Prosedur filter-replikasiS = Tabel dasar sistemSN = SinonimSO = Objek urutanU = Tabel (ditentukan pengguna)V = TampilanBerlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru SQ = Antrean layananTA = Pemicu DML Assembly (CLR)TF = Fungsi bernilai tabel SQL (TVF)TR = Pemicu SQL DMLTT = Jenis tabelUQ = batasan unikX = Prosedur tersimpan yang diperluasBerlaku untuk: SQL Server 2014 (12.x) dan versi yang lebih baru, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW) ST = Pohon statistikBerlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW) ET = Tabel eksternalBerlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW) EC = Batasan edge |
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 EDGE_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TYPE_TABLE UNIQUE_CONSTRAINT USER_TABLE VIEW |
create_date |
datetime | Tanggal objek dibuat. |
modify_date |
datetime | Tanggal objek terakhir diubah dengan menggunakan ALTER pernyataan. 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 diperlihatkan dalam sys.objects
.
Ada versi tampilan ini dengan skema yang sama, yang disebut sys.system_objects, yang menunjukkan objek sistem. Tampilan lain, yang disebut sys.all_objects, 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
(type
adalah IT
, dan type_desc
adalah INTERNAL_TABLE
). Untuk indeks yang diperluas:
name
adalah nama internal tabel indeksparent_object_id
object_id
adalah tabel dasaris_ms_shipped
,is_published
, danis_schema_published
kolom diatur ke0
Tampilan sistem terkait
Subset objek dapat dilihat dengan menggunakan tampilan sistem untuk jenis objek tertentu, seperti:
Izin
Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Contoh
J. Mengembalikan semua objek yang 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
INNER JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO