sys.objects (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)koncový bod SQL Analytics ve službě Microsoft FabricÚložiště v Microsoft Fabric

Obsahuje řádek pro každý uživatelem definovaný, schématově zaměřený objekt vytvořený v databázi, včetně nativně zkompilovaných skalárních uživatelsky definovaných funkcí.

Další informace naleznete v tématu Funkce skalárního User-Defined pro In-Memory OLTP.

Note

sys.objects nezobrazuje DDL spouštěče, protože nejsou schema-scoped. Všechny triggery, jak DML, tak DDL, se nacházejí v sys.triggers. sys.triggers podporuje kombinaci pravidel pro určení rozsahu názvů pro různé typy spouštěčů.

Název sloupce Datový typ Description
name sysname Název objektu.
object_id int Identifikační číslo objektu. Je jedinečný v rámci databáze.
principal_id int ID jednotlivého vlastníka, pokud se liší od vlastníka schématu. Ve výchozím nastavení jsou objekty obsažené ve schématu vlastněny vlastníkem schématu. Alternativního vlastníka však lze určit pomocí příkazu ALTER AUTHORIZATION ke změně vlastnictví.

NULL Pokud není žádný jiný individuální majitel.

Je pokud NULL je typ objektu jednou z následujících hodnot:

C = Kontrolní omezení
D = Výchozí (omezení nebo samostatné)
F = Omezení cizího klíče
PK = Omezení primárního klíče
R = Pravidlo (starý styl, samostatné)
TA = Spouštěč assembleru (CLR-integrace)
TR = SQL trigger
UQ = Jedinečné omezení
EC = Hranové omezení
schema_id int ID schématu, ve kterém je objekt obsažen.

Objekty systému se schématem jsou vždy obsaženy v systému nebo INFORMATION_SCHEMA schématech.
parent_object_id int ID objektu, ke kterému tento objekt patří.

0 = Není to dětský objekt.
type char(2) Typ objektu:

AF = Agregovaná funkce (CLR)
C = Kontrolní omezení
D = Výchozí (omezení nebo samostatné)
F = Omezení cizího klíče
FN = SQL skalární funkce
FS = Sestavovací (CLR) skalární funkce
FT = Funkce s tabulkovými hodnotami v assembleru (CLR)
IF = SQL inline tabulková funkce (TVF)
IT = Interní tabulka
P = SQL uložená procedura
PC = Assembler-(CLR) uložený postup
PG = Průvodce plánem
PK = Omezení primárního klíče
R = Pravidlo (starý styl, samostatné)
RF = Replikace-filtr-procedura
S = Základní tabulka systému
SN = Synonymum
SO = Sekvenční objekt
U = Tabulka (uživatelsky definovaná)
V = Zobrazit

Applies to: SQL Server 2012 (11.x) a novější verze

SQ = Fronta služeb
TA = DML trigger Assembly (CLR)
TF = SQL tabulková funkce (TVF)
TR = SQL DML trigger
TT = Typ tabulky
UQ = jedinečné omezení
X = Rozšířená uložená procedura

Platí na: SQL Server 2014 (12.x) a pozdější verze, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

ST = Strom statistiky

Platí na: SQL Server 2016 (13.x) a pozdější verze, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

ET = Externí tabulka

Platí na: SQL Server 2017 (14.x) a pozdější verze, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW)

EC = Hranové omezení
type_desc nvarchar(60) Popis typu objektu:

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 Datum vytvoření objektu
modify_date datetime Datum poslední úpravy objektu pomocí příkazu ALTER . Pokud je objektem tabulka nebo pohled, modify_date také změní, když je index v tabulce nebo pohledu vytvořen nebo změněn.
is_ms_shipped bit Objekt je vytvořen interní komponentou SQL Server.
is_published bit Objekt je publikován.
is_schema_published bit Publikuje se pouze schéma objektu.

Remarks

Vestavěné funkce OBJECT_ID, OBJECT_NAME a OBJECTPROPERTY můžete aplikovat na objekty zobrazené v .sys.objects

Existuje verze tohoto pohledu se stejným schématem, nazývaná sys.system_objects, která zobrazuje systémové objekty. Další pohled, nazývaný sys.all_objects, zobrazuje jak systémové, tak uživatelské objekty. Všechny tři katalogové pohledy mají stejnou strukturu.

V této verzi SQL Server je rozšířený index, jako je XML index nebo prostorový index, považován za interní tabulku v ( sys.objectstype je IT, a type_desc je ).INTERNAL_TABLE Pro rozšířený index:

  • name je interní název indexové tabulky
  • parent_object_id je z object_id základní tabulky
  • is_ms_shipped, is_published, a sloupce jsou nastaveny is_schema_published na 0

Podmnožiny objektů lze zobrazit pomocí systémových pohledů pro konkrétní typ objektu, například:

Permissions

Viditelnost metadat v zobrazeních katalogu je omezena na položky, které uživatel vlastní, nebo na které má uživatel udělené určité oprávnění. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.

Examples

A. Vraťte všechny objekty, které byly upraveny v posledních N dnech

Než spustíte následující dotaz, nahraďte <database_name> a <n_days> platnými hodnotami.

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. Vraťte parametry pro specifikovanou uloženou proceduru nebo funkci

Než spustíte následující dotaz, nahraďte <database_name> a <schema_name.object_name> platnými názvy.

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. Vraťte všechny uživatelem definované funkce v databázi

Než spustíte následující dotaz, nahraďte <database_name> ho platným názvem databáze.

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. Vraťte vlastníka každého objektu ve schématu

Než spustíte následující dotaz, nahraďte všechny výskyty a <database_name><schema_name> platnými názvy.

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