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 yang ditentukan pengguna secara asli.

Untuk informasi selengkapnya, lihat Fungsi skalar User-Defined untuk In-Memory OLTP.

Catatan

sys.objects tidak menampilkan pemicu DDL, karena tidak terlingkup 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 berisi 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.

Apakah 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 skema sys atau 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 = Fungsi skalar SQL
FS = Assembly (CLR) fungsi skalar
FT = Assembly (CLR) fungsi bernilai tabel
IF = Fungsi bernilai tabel sebaris SQL
IT = Tabel internal
P = Prosedur Tersimpan SQL
PC = Assembly (CLR) prosedur tersimpan
PG = Panduan rencana
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

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

SQ = Antrean layanan
TA = Pemicu DML Assembly (CLR)
TF = fungsi bernilai tabel SQL
TR = Pemicu SQL DML
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

Berlaku untuk: SQL Server 2017 (14.x) dan 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
ATURAN
SEQUENCE_OBJECT
SERVICE_QUEUE
SQL_INLINE_TABLE_VALUED_FUNCTION
SQL_SCALAR_FUNCTION
SQL_STORED_PROCEDURE
SQL_TABLE_VALUED_FUNCTION
SQL_TRIGGER
SINONIM
SYSTEM_TABLE
TYPE_TABLE
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 ditunjukkan 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 dalam sys.objects (jenis = IT dan type_desc = INTERNAL_TABLE). Untuk indeks yang diperluas:

  • name adalah nama internal tabel indeks.

  • parent_object_idobject_id adalah tabel dasar.

  • is_ms_shipped, is_published dan is_schema_published kolom diatur ke 0.

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