sys.Objects (Transact-SQL)

Bir veritabanı içinde oluşturulan her kullanıcı tanımlı, şema kapsamlı nesne için bir satır içerir.

Not

sys.objectsDDL tetikleyiciler, bunlar değil şema kapsamlı çünkü göstermez.Tüm tetikleyiciler DML ve DDL, bulunan trigger.sys.triggersçeşitli Tetikleyiciler için adı kapsam kuralları karışımını destekler.

Sütun adı

Veri türü

Açıklama

name

sysname

Nesne adı.

object_id

int

Nesne tanımlama numarası.Bir veritabanı içinde benzersizdir.

principal_id

int

Şema sahibini farklıysa, tek tek sahibinin kimliği.Varsayılan olarak, şema içerdiği nesneleri şema sahibi tarafından sahip olunan.Ancak, başka bir sahibi sahipliğini değiştirmek için alter YETKİLENDİRME deyim kullanılarak belirtilebilir.

Olan diğer tek tek sahibi ise null.

İş nesnesi türü aşağıdakilerden biri ise null:

C denetim kısıtlaması =

D = varsayılan (kısıtlaması veya tek başına)

F = yabancı anahtar kısıtlaması

pk PRIMARY key kısıtlaması =

R = kural (eski stil, tek başına)

ta derleme (clrtümleştirme) tetikleyici =

tr SQL tetikleyici =

uq = kısıtlama

schema_id

int

Nesnenin içerdiği şema kimliği.

Şema kapsamlı sistem nesneleri her zaman içinde bulunan sys veya INFORMATION_SCHEMA şemalar.

parent_object_id

int

Bu nesnenin ait olduğu nesne kimliği.

0 = alt nesne.

type

char(2)

Nesne türü:

af toplama işlev (clr) =

C denetim kısıtlaması =

D = varsayılan (kısıtlaması veya tek başına)

F = yabancı anahtar kısıtlaması

fn SQLskalerişlev=

fs = derleme (clr) skaler-işlev

ft = derleme (clr) tablo-değerli işlev

IF = SQL satır içi tablo-değerli işlev

BT iç tablo=

P = SQL saklı yordamı

pc derleme (clr) depolanan yordamı =

pg Plan Kılavuzu =

pk PRIMARY key kısıtlaması =

R = kural (eski stil, tek başına)

rf çoğaltma filtre yordamını =

S = sistem temel tablo

sn eşanlamlı =

sq Service sıra =

ta derleme (clr) DML tetikleyici =

tf SQLtablo- değerli -işlev=

tr SQL DML tetikleyici =

tt = tablo türü

U = tablosu (kullanıcı tanımlı)

uq = kısıtlama

V = Görünüm

X = genişletilmiş saklı yordam

type_desc

nvarchar(60)

Nesne türü açıklaması:

AGGREGATE_FUNCTION

CHECK_CONSTRAINT

DEFAULT_CONSTRAINT

FOREIGN_KEY_CONSTRAINT

SQL_SCALAR_FUNCTION

CLR_SCALAR_FUNCTION

CLR_TABLE_VALUED_FUNCTION

SQL_INLINE_TABLE_VALUED_FUNCTION

INTERNAL_TABLE

SQL_STORED_PROCEDURE

CLR_STORED_PROCEDURE

PLAN_GUIDE

PRIMARY_KEY_CONSTRAINT

KURAL

REPLICATION_FILTER_PROCEDURE

SYSTEM_TABLE

EŞANLAMLI

SERVICE_QUEUE

CLR_TRIGGER

SQL_TABLE_VALUED_FUNCTION

SQL_TRIGGER

DEĞİŞKENİNDEKİ TABLE_TYPE

USER_TABLE

UNIQUE_CONSTRAINT

VIEW

EXTENDED_STORED_PROCEDURE

create_date

datetime

Nesnenin oluşturulduğu tarih.

modify_date

datetime

Object alter deyimkullanarak son değiştirildiği tarih.Nesne bir tablo veya görünüm ise modify_date kümelenmiş dizin tablo veya Görünüm oluşturulduğunda veya değiştirmiş de değişir.

is_ms_shipped

bit

Nesne bir iç tarafından oluşturuldu SQL Server bileşeni.

is_published

bit

Nesne yayımlanır.

is_schema_published

bit

Yalnızca nesnenin şema yayımlanır.

Açıklamalar

Uygulayabileceğiniz OBJECT_ID, nesne_adı, ve objectpropertygösterilen nesneler () yerleşik işlevler sys.objects.

Bu görünümün adı verilen aynı şemaya bir sürüm vardır sys.system_objects, sistem nesneleri gösterir.Başka bir görünüm adı verilen sys.all_objects , sistem ve kullanıcı nesnelerini gösterir.Tüm üç katalog görünümleri aynı yapıya sahip.

Bu sürüm , SQL Server, bir xml dizin gibi genişletilmiş dizin veya kayma dizin içinde bir iç tablo kabul sys.objects ()type = BT ve type_desc INTERNAL_TABLE =).Genişletilmiş bir dizin:

  • nameİç dizin tabloadıdır.

  • parent_object_idİş object_id temel tablo.

  • is_ms_shipped, is_published ve is_schema_published sütunları olan küme için 0.

İzinler

SQL Server 2005 ve sonraki sürümlerinde, katalog görünümlerinde meta verinin görünürlüğü bir kullanıcının ya sahip olduğu ya da bazı izinlerine sahip olduğu güvenliği sağlanabilen öğelerle sınırlıdır.Daha fazla bilgi için bkz: Meta veri görünürlük yapılandırma.

Örnekler

A.Son n gün içinde değiştirilmiş tüm nesneleri döndürme

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

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.Belirtilen saklı yordam veya işlevparametreleri döndürme

Aşağıdaki sorguyu çalıştırmadan önce Değiştir <database_name> ve <schema_name.object_name> ile geçerli adları.

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.Tüm kullanıcı tanımlı işlevler bir veritabanında döndürme

Aşağıdaki sorguyu çalıştırmadan önce Değiştir <database_name> geçerli bir veritabanı adı.

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 sahibi şema içinde döndürülüyor.

Aşağıdaki sorguyu çalıştırmadan önce tüm tekrarlamalarını değiştirmek <database_name> ve <schema_name> ile geçerli adları.

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