sys.objects (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft FabricWarehouse'da SQL analiz uç noktası

Veritabanı içinde oluşturulan her kullanıcı tanımlı, şema kapsamlı nesne için bir satır içerir; bunlara yerel olarak derlenmiş skaler kullanıcı tanımlı fonksiyonlar dahildir.

Daha fazla bilgi için bkz: In-Memory OLTP için Skaler User-Defined İşlevleri.

Note

sys.objects DDL tetikleyicilerini göstermiyor çünkü şema kapsamlı değiller. Tüm tetikleyiciler, hem DML hem de DDL, sys.triggers'te bulunur. sys.triggers Tetikleyici türleri için isim belirleme kurallarının karışımını destekler.

Sütun adı Veri türü Description
name sysname Nesne adı.
object_id int Nesne tanımlama numarası. Bir veritabanında benzersizdir.
principal_id int Bireysel sahibin kimliği, şema sahibinden farklıysa. Varsayılan olarak, şema içeren nesneler şema sahibine aittir. Ancak, sahiplik değişikliği için bu ALTER AUTHORIZATION ifade kullanılarak alternatif bir sahip belirtilebilir.

NULL Alternatif bir sahibi yoksa.

NULL Eğer nesne türü aşağıdaki değerlerden biri ise:

C = Kısıtlamayı kontrol et
D = Varsayılan (kısıtlama veya bağımsız)
F = Yabancı anahtar kısıtlaması
PK = Birincil anahtar kısıtlaması
R = Kural (eski tarz, bağımsız)
TA = Montaj (CLR-entegrasyon) tetikleyicisi
TR = SQL tetikleyicisi
UQ = Benzersiz kısıtlama
EC = Kenar kısıtlaması
schema_id int Nesnenin içinde bulunduğu şemanın kimliği.

Şema kapsamlı sistem nesneleri her zaman sistem veya INFORMATION_SCHEMA şemalarda yer alır.
parent_object_id int Bu nesnenin ait olduğu nesnenin kimliği.

0 = Çocuk nesne değil.
type char(2) Nesne türü:

AF = Toplam fonksiyon (CLR)
C = Kısıtlamayı kontrol et
D = Varsayılan (kısıtlama veya bağımsız)
F = Yabancı anahtar kısıtlaması
FN = SQL skaler fonksiyonu
FS = Montaj (CLR) skaler fonksiyonu
FT = Montaj (CLR) tablo değerli fonksiyon
IF = SQL satır içi tablo değerli fonksiyon (TVF)
IT = İç tablo
P = SQL depolanmış prosedür
PC = Montaj (CLR) depolanmış prosedür
PG = Plan rehberi
PK = Birincil anahtar kısıtlaması
R = Kural (eski tarz, bağımsız)
RF = Replikasyon-filtre-prosedürü
S = Sistem temel tablosu
SN = Eşanlamlı
SO = Dizi nesnesi
U = Tablo (kullanıcı tarafından tanımlanmış)
V = Görünüm

Applies to: SQL Server 2012 (11.x) ve sonraki sürümleri

SQ = Hizmet kuyruğu
TA = Montaj (CLR) DML tetikleyicisi
TF = SQL tablo-değerli fonksiyon (TVF)
TR = SQL DML tetikleyicisi
TT = Tablo tipi
UQ = Benzersiz kısıtlama
X = Genişletilmiş depolanmış prosedür

Apply to: SQL Server 2014 (12.x) and later versions, Azure SQL Veritabanı, Azure Synapse Analytics, Analytics Platform System (PDW)

ST = İstatistik ağacı

Apply to: SQL Server 2016 (13.x) and later versions, Azure SQL Veritabanı, Azure Synapse Analytics, Analytics Platform System (PDW)

ET = Dış tablo

Apply to: SQL Server 2017 (14.x) and later versions, Azure SQL Veritabanı, Azure Synapse Analytics, Analytics Platform System (PDW)

EC = Kenar kısıtlaması
type_desc nvarchar(60) Nesne türünün tanımı:

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 Nesnenin oluşturulduğu tarih.
modify_date datetime Nesnenin son değiştirildiği tarih bir ALTER ifade kullanılarak belirtilir. Nesne bir tablo veya görünüm ise, modify_date tablo veya görünümde bir indeks oluşturulduğunda veya değiştirildiğinde de değişir.
is_ms_shipped bit Nesne, dahili bir SQL Server bileşeni tarafından oluşturulur.
is_published bit Nesne yayımlanır.
is_schema_published bit Yalnızca nesnenin şeması yayımlanır.

Remarks

OBJECT_ID, OBJECT_NAME ve OBJECTPROPERTY yerleşik fonksiyonlarını, içinde sys.objectsgösterilen nesnelere uygulayabilirsiniz.

Aynı şemaya sahip bir versiyon var, sys.system_objects adı veriliyor ve sistem nesnelerini gösteriyor. sys.all_objects olarak adlandırılan başka bir görünüm, hem sistem hem de kullanıcı nesnelerini gösterir. Üç katalog görünümü de aynı yapıya sahiptir.

Bu SQL Server sürümünde, XML indeksi veya uzamsal indeks gibi genişletilmiş bir indeks, içinde sys.objectstype ( ise IT, ve type_desc ise INTERNAL_TABLE). Genişletilmiş bir indeks için:

  • name indeks tablosunun iç adıdır
  • parent_object_idtemel tablonun object_id
  • is_ms_shipped, is_published, ve is_schema_published sütunlar şu şekilde ayarlanmıştır 0

Nesnelerin alt kümeleri, belirli bir nesne türü için sistem görünümleri kullanılarak görüntülenebilir, örneğin:

İzinler

Katalog görünümlerindeki meta verilerin görünürlüğü, kullanıcının sahip olduğu veya kullanıcıya bazı izinlerin verildiği güvenli hale getirilebilir öğelerle sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Examples

A. Son N günde değiştirilen tüm nesneleri geri gönder

Aşağıdaki sorguyu çalıştırmadan önce, ve <database_name> ile geçerli değerlerle değiştirin<n_days>.

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. Belirli bir depolanmış prosedür veya fonksiyon için parametreleri döndürün

Aşağıdaki sorguyu çalıştırmadan önce, ve <database_name> geçerli isimlerle değiştirin<schema_name.object_name>.

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. Veritabanındaki tüm kullanıcı tanımlı fonksiyonları döndür

Aşağıdaki sorguyu çalıştırmadan önce, geçerli bir veritabanı adıyla değiştirin <database_name> .

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. Her nesnenin sahibini bir şemadaki döndürme

Aşağıdaki sorguyu çalıştırmadan önce, ve <database_name><schema_name> ile ile karşılaşmalarının tamamını geçerli isimlerle değiştirin.

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