sys.objects (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)punkt końcowy analizy SQL w usłudze Microsoft FabricMagazyn w usłudze Microsoft Fabric

Zawiera wiersz dla każdego obiektu zdefiniowanego przez użytkownika i o skale utworzonym w bazie danych, w tym natywnie skompilowanych skalarnych funkcji zdefiniowanych przez użytkownika.

Aby uzyskać więcej informacji, zobacz Scalar User-Defined Functions for In-Memory OLTP.

Note

sys.objects nie pokazuje wyzwalaczy DDL, ponieważ nie są one schematycznie ograniczone. Wszystkie wyzwalacze, zarówno DML, jak i DDL, znajdują się w sys.triggers. sys.triggers Wspiera mieszankę reguł zakresu nazw dla różnych rodzajów wyzwalaczy.

Nazwa kolumny Typ danych Description
name sysname Nazwa obiektu.
object_id int Numer identyfikacyjny obiektu. Jest unikatowy w bazie danych.
principal_id int Identyfikacja właściciela indywidualnego, jeśli różni się od właściciela schematu. Domyślnie obiekty zawarte w schemie należą do właściciela schematu. Jednak alternatywnego właściciela można określić, używając ALTER AUTHORIZATION tego potwierdzenia do zmiany właściciela.

NULL Jeśli nie ma innego właściciela.

Jest wtedy NULL , gdy typ obiektu jest jedną z następujących wartości:

C = Sprawdź ograniczenie
D = Domyślne (ograniczenie lub samodzielne)
F = Ograniczenie klucza obcego
PK = Ograniczenie klucza podstawowego
R = Reguła (w starym stylu, samodzielna)
TA = Wyzwalacz asemblerowy (integracja CLR)
TR = wyzwalacz SQL
UQ = Ograniczenie unikalne
EC = Ograniczenie krawędzi
schema_id int ID schematu, w którym obiekt się znajduje.

Obiekty systemowe o skali schematu są zawsze zawarte w systemach lub INFORMATION_SCHEMA schematach.
parent_object_id int Identyfikator obiektu, do którego należy ten obiekt.

0 = Nie jest obiektem potomnym.
type char(2) Typ obiektu:

AF = Funkcja agregatu (CLR)
C = Sprawdź ograniczenie
D = Domyślne (ograniczenie lub samodzielne)
F = Ograniczenie klucza obcego
FN = Funkcja skalarna SQL
FS = Funkcja skalarna Assembly (CLR)
FT = Funkcja tabelowa Assembly (CLR)
IF = SQL funkcja tabelowa (TVF)
IT = Tabela wewnętrzna
P = procedura przechowywana SQL
PC = Procedura składowana (CLR)
PG = Przewodnik po planie
PK = Ograniczenie klucza podstawowego
R = Reguła (w starym stylu, samodzielna)
RF = Procedura filtrowania replikacji
S = Tabela bazowa systemu
SN = Synonim
SO = Obiekt sekwencji
U = Tabela (zdefiniowana przez użytkownika)
V = Zobacz

Applies to: SQL Server 2012 (11.x) i nowsze wersje

SQ = Kolejka serwisowa
TA = Wyzwalacz DML Assembly (CLR)
TF = SQL funkcja tabelowa (TVF)
TR = Wyzwalacz SQL DML
TT = Typ tabeli
UQ = ograniczenie unikalne
X = Rozszerzona procedura przechowywana

Dotyczy do: SQL Server 2014 (12.x) i późniejszych wersji, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

ST = Drzewo statystyk

Dotyczy do: SQL Server 2016 (13.x) i późniejszych wersji, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

ET = Tabela zewnętrzna

Dotyczy do: SQL Server 2017 (14.x) i późniejszych wersji, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

EC = Ograniczenie krawędzi
type_desc nvarchar(60) Opis typu obiektu:

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 Data utworzenia obiektu.
modify_date datetime Data ostatniej modyfikacji obiektu za pomocą ALTER instrukcji. Jeśli obiektem jest tabela lub widok, modify_date również zmienia się, gdy indeks w tabeli lub widoku zostanie utworzony lub zmieniony.
is_ms_shipped bit Obiekt jest tworzony przez wewnętrzny komponent SQL Server.
is_published bit Obiekt jest publikowany.
is_schema_published bit Opublikowano tylko schemat obiektu.

Remarks

Możesz zastosować wbudowane funkcje OBJECT_ID, OBJECT_NAME i OBJECTPROPERTY do obiektów pokazanych w .sys.objects

Istnieje wersja tego widoku z tym samym schematem, zwana sys.system_objects, która pokazuje obiekty systemowe. Inny widok, zwany sys.all_objects, pokazuje zarówno obiekty systemowe, jak i użytkownika. Wszystkie trzy widoki katalogowe mają tę samą strukturę.

W tej wersji SQL Server rozszerzony indeks, taki jak indeks XML lub indeks przestrzenny, jest traktowany jako wewnętrzna tabela w sys.objects (type jest IT, a type_desc jest ).INTERNAL_TABLE Dla rozszerzonego indeksu:

  • name to wewnętrzna nazwa tabeli indeksów
  • parent_object_id jest tablicą object_id bazową
  • is_ms_shipped, is_published, a is_schema_published kolumny ustawia się na 0

Podzbiory obiektów można oglądać, używając widoków systemowych dla określonego typu obiektu, takich jak:

Permissions

Widoczność metadanych w widokach katalogu jest ograniczona do obiektów, których właścicielem jest użytkownik lub w stosunku do których użytkownik ma jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Examples

A. Zwróć wszystkie obiekty, które zostały zmodyfikowane w ciągu ostatnich N dni

Zanim wykonasz następujące zapytanie, zamień <database_name> i <n_days> na poprawne wartości.

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. Zwróć parametry dla określonej procedury lub funkcji przechowywanej

Zanim wykonasz następujące zapytanie, zamień <database_name> i <schema_name.object_name> na poprawne nazwy.

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. Zwracaj wszystkie funkcje zdefiniowane przez użytkownika w bazie danych

Zanim wykonasz następujące zapytanie, zastąp <database_name> go poprawną nazwą bazy danych.

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. Zwróć właściciela każdego obiektu w schemacie

Zanim wykonasz następujące zapytanie, zastąp wszystkie wystąpienia i <database_name><schema_name> na poprawne nazwy.

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