sys.objects (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse 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 batasan
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 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 batasan
D = Default (batasan atau berdiri sendiri)
F = Batasan kunci asing
FN = Fungsi skalar SQL
FS = Assembly (CLR) fungsi skalar
FT = Fungsi bernilai tabel Assembly (CLR)
IF = Fungsi bernilai tabel sebaris SQL (TVF)
IT = Tabel internal
P = Prosedur tersimpan SQL
PC = Prosedur tersimpan assembly (CLR)
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 versi yang lebih baru

SQ = Antrean layanan
TA = Pemicu DML Assembly (CLR)
TF = Fungsi bernilai tabel SQL (TVF)
TR = Pemicu SQL DML
TT = Jenis tabel
UQ = batasan unik
X = Prosedur tersimpan yang diperluas

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

ST = Pohon statistik

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

ET = Tabel eksternal

Berlaku 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 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 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