sys.objects (Transact-SQL)
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Enthält eine Zeile für jedes benutzerdefinierte schemabezogene Objekt, das in einer Datenbank erstellt wird, einschließlich nativ kompilierter benutzerdefinierter Skalarfunktionen.
Weitere Informationen dazu finden Sie unter Benutzerdefinierte Skalarfunktionen für In-Memory-OLTP.
Hinweis
sys.objects
zeigt keine DDL-Trigger an, da diese keine Schemabereiche besitzen. Alle Trigger – sowohl DML- als auch DDL-Trigger – sind in sys.triggers enthalten. sys.triggers
unterstützt eine Mischung von Namensbereichsregeln für die verschiedenen Arten von Triggern.
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
name | sysname | Objektname |
object_id | int | Objekt-ID. Ist innerhalb einer Datenbank eindeutig. |
principal_id | int | ID des einzelnen Besitzers, sofern es sich bei diesem nicht um den Schemabesitzer handelt. Standardmäßig gehören Objekte mit Schemabereich dem Schemabesitzer. Mit der ALTER AUTHORIZATION-Anweisung kann jedoch ein anderer Besitzer angegeben werden. Ist NULL, wenn kein alternativer einzelner Besitzer vorhanden ist. Ist NULL, wenn der Objekttyp einen der folgenden Werte aufweist: C = CHECK-Einschränkung D = DEFAULT (Einschränkung oder eigenständig) F = FOREIGN KEY-Einschränkung PK = PRIMARY KEY-Einschränkung R = Regel (vom alten Typ, eigenständig) TA = Assemblytrigger (CLR-Integration) TR = SQL-Trigger UQ = UNIQUE-Einschränkung EC = Edge-Constraint |
schema_id | int | Die ID des Schemas, in dem das Objekt enthalten ist. Systemobjekte mit Schemabereich sind immer in den sys-Schemas oder INFORMATION_SCHEMA-Schemas enthalten. |
parent_object_id | int | ID des Objekts, zu dem dieses Objekt gehört. 0 = Kein untergeordnetes Objekt. |
Typ | char(2) | Objekttyp: AF = Aggregatfunktion (CLR) C = CHECK-Einschränkung D = DEFAULT (Einschränkung oder eigenständig) F = FOREIGN KEY-Einschränkung FN = SQL-Skalarfunktion FS = Assemblyskalarfunktion (CLR) FT = Assembly-Tabellenwertfunktion (CLR) IF = SQL-Inlinefunktion mit Tabellenrückgabe IT = Interne Tabelle P = Gespeicherte SQL-Prozedur PC = Gespeicherte Assemblyprozedur (CLR) PG = Planhinweisliste PK = PRIMARY KEY-Einschränkung R = Regel (vom alten Typ, eigenständig) RF = Replikationsfilterprozedur S = Systembasistabelle SN = Synonym SO = Sequenzobjekt U = Tabelle (benutzerdefiniert) V = Sicht Gilt für: SQL Server 2012 (11.x) und höher. SQ = Dienstwarteschlange TA = Assembly-DML-Trigger (CLR) TF = Tabellenwertfunktion von SQL TR = SQL-DML-Trigger TT = Tabellentyp UQ = UNIQUE-Einschränkung X = Erweiterte gespeicherte Prozedur Gilt für: SQL Server 2014 (12.x) und höher, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW) ST = STATS_TREE Gilt für: SQL Server 2016 (13.x) und höher, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW) ET = Externe Tabelle Gilt für: SQL Server 2017 (14.x) und höher, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW) EC = Edge-Constraint |
type_desc | nvarchar(60) | Beschreibung des Objekttyps: 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, an dem das Objekt erstellt wurde. |
modify_date | datetime | Das Datum, an dem das Objekt zuletzt mithilfe einer ALTER-Anweisung geändert wurde. Ist das Objekt eine Tabelle oder Sicht, wird „modify_date“ ebenfalls geändert, wenn ein Index in der Tabelle oder Sicht erstellt oder geändert wird. |
is_ms_shipped | bit | Das Objekt wird durch eine interne SQL Server-Komponenten erstellt. |
is_published | bit | Objekt wurde veröffentlicht. |
is_schema_published | bit | Nur das Schema des Objekts wird veröffentlicht. |
Bemerkungen
Sie können die integrierten Funktionen OBJECT_ID, OBJECT_NAME und OBJECTPROPERTY() auf die in sys.objects
angezeigten Objekte anwenden.
Es gibt eine Version dieser Sicht mit demselben Schema namens sys.system_objects, die Systemobjekte anzeigt. Eine andere Sicht namens sys.all_objects zeigt sowohl System- als auch Benutzerobjekte an. Alle drei Katalogsichten weisen die gleiche Struktur auf.
In dieser Version von SQL Server wird ein erweiterter Index – beispielsweise ein XML-Index oder ein räumlicher Index – als interne Tabelle in sys.objects
(type = IT und type_desc = INTERNAL_TABLE) betrachtet. Für einen erweiterten Index gilt:
name
ist der interne Name der Indextabelle.parent_object_id
ist dieobject_id
der Basistabelle.Die Spalten
is_ms_shipped
,is_published
undis_schema_published
sind auf0
festgelegt.
Verwandte nützliche Systemsichten
Teilmengen der Objekte können mithilfe von Systemsichten für einen bestimmten Objekttyp angezeigt werden, z. B.:
Berechtigungen
Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
A. Gibt alle Objekte zurück, die in den letzten n Tagen geändert wurden.
Vor dem Ausführen der folgenden Abfrage ersetzen Sie <database_name>
und <n_days>
durch gültige Werte.
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. Gibt die Parameter für eine angegebene gespeicherte Prozedur oder Funktion zurück.
Ersetzen Sie vor dem Ausführen der folgenden Abfrage <database_name>
und <schema_name.object_name>
durch gültige Namen.
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. Gibt alle benutzerdefinierten Funktionen in einer Datenbank zurück.
Vor dem Ausführen der folgenden Abfrage ersetzen Sie <database_name>
durch einen gültigen Datenbanknamen.
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: Gibt den Besitzer jedes Objekts in einem Schema zurück.
Vor dem Ausführen der folgenden Abfrage ersetzen Sie alle Vorkommen von <database_name>
und <schema_name>
durch gültige Namen.
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