sys.objects (Transact-SQL)
Gilt für:SQL Server (alle unterstützen Versionen)
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Enthält eine Zeile für jedes benutzerdefinierte, schemabereichsbezogene Objekt, das innerhalb einer Datenbank erstellt wird, einschließlich nativer kompilierter skalarer benutzerdefinierter Funktion.
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, werden in sys.triggers gefunden. sys.triggers unterstützt eine Mischung aus Namens-Scoping-Regeln 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 = Edgeeinschränkung |
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 EC = Edgeeinschränkung 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 |
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 EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT Gilt für: SQL Server 2012 (11.x) und höher. SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TABLE_TYPE 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. Wenn es sich bei dem Objekt um eine Tabelle oder eine Ansicht handelt, ändert sich modify_date auch, wenn ein Index in der Tabelle oder Ansicht erstellt oder geändert wird. |
is_ms_shipped | bit | Das Objekt wird von einer internen SQL Server Komponente erstellt. |
is_published | bit | Objekt wurde veröffentlicht. |
is_schema_published | bit | Nur das Schema des Objekts wird veröffentlicht. |
Hinweise
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 Ansicht mit demselben Schema, das sys.system_objects genannt wird, die Systemobjekte anzeigt. Es gibt eine weitere Ansicht namens sys.all_objects , die sowohl System- als auch Benutzerobjekte anzeigt. Alle drei Katalogsichten weisen die gleiche Struktur auf.
In dieser Version von SQL Server gilt ein erweiterter Index, z. B. ein XML-Index oder ein räumlicher Index, als interne Tabelle in sys.objects (typ = IT und type_desc = INTERNAL_TABLE). Für einen erweiterten Index gilt:
name ist der interne Name der Indextabelle.
parent_object_id ist der object_id-Wert der Basistabelle.
Die Spalten is_ms_shipped, is_published und is_schema_published werden auf 0 festgelegt.
Verwandte nützliche Systemansichten
Teilmengen der Objekte können mithilfe von Systemansichten 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. Zurückgeben aller Objekte, 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. Zurückgeben der Parameter für eine angegebene gespeicherte Prozedur oder Funktion
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. Zurückgeben aller benutzerdefinierten Funktionen in einer Datenbank
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: Zurückgeben des Besitzers jedes Objekts in einem Schema
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
Weitere Informationen
Katalogsichten (Transact-SQL)
sys.all_objects (Transact-SQL)
sys.system_objects (Transact-SQL)
sys.triggers (Transact-SQL)
Katalogsichten für Objekte (Transact-SQL)
FAQ: Abfragen des SQL Server-Systemkatalogs
sys.internal_tables (Transact-SQL)