sys.objects (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Platform System (PDW) SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
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 sie nicht schemabereichsgeschützt sind. 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. Ein alternativer Besitzer kann jedoch mithilfe der ALTER AUTHORIZATION Anweisung angegeben werden, um den Besitz zu ändern.NULL wenn kein alternativer einzelner Besitzer vorhanden ist.Ist NULL , wenn der Objekttyp eines der folgenden Werte ist:C = Einschränkung überprüfenD = Standard (Einschränkung oder eigenständige Standardeinstellung)F = Nebenbedingung für FremdschlüsselPK = Einschränkung des PrimärschlüsselsR = Regel (alter Stil, eigenständig)TA = Assembly -Trigger (CLR-Integration)TR = SQL-TriggerUQ = Eindeutige EinschränkungEC = Edgeeinschränkung |
schema_id |
int | Die ID des Schemas, in dem das Objekt enthalten ist. Systemobjekte mit Schemabereich sind immer in den Sys- oder INFORMATION_SCHEMA Schemas enthalten. |
parent_object_id |
int | ID des Objekts, zu dem dieses Objekt gehört.0 = Kein untergeordnetes Objekt. |
type |
char(2) | Objekttyp:AF = Aggregatfunktion (CLR)C = Einschränkung überprüfenD = Standard (Einschränkung oder eigenständige Standardeinstellung)F = Nebenbedingung für FremdschlüsselFN = SQL-SkalarfunktionFS = Assembly (CLR) skalare FunktionFT = Assembly (CLR)-Funktion mit TabellenwertIF = SQL-Inlinetabellenwertfunktion (TVF)IT = Interne TabelleP = GESPEICHERTe SQL-ProzedurPC = Assembly (CLR) gespeicherte ProzedurPG = PlanleitfadenPK = Einschränkung des PrimärschlüsselsR = Regel (alter Stil, eigenständig)RF = Replikationsfilter-ProzedurS = SystembasistabelleSN = SynonymSO = Sequence-ObjektU = Tabelle (benutzerdefiniert)V = AnsichtGilt für: SQL Server 2012 (11.x) und höhere Versionen SQ = DienstwarteschlangeTA = ASSEMBLY (CLR) DML-TriggerTF = SQL-Tabellenwert-Funktion (TVF)TR = SQL DML-TriggerTT = TabellentypUQ = eindeutige EinschränkungX = Erweiterte gespeicherte ProzedurGilt für: SQL Server 2014 (12.x) und höhere Versionen, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW) ST = StatistikstrukturGilt für: SQL Server 2016 (13.x) und höhere Versionen, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW) ET = Externe TabelleGilt für: SQL Server 2017 (14.x) und höhere Versionen, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW) EC = Edgeeinschränkung |
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 | 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. |
Hinweise
Sie können die integrierten funktionen OBJECT_ID, OBJECT_NAME und OBJECTPROPERTY auf die in sys.objects
.
Es gibt eine Version dieser Ansicht mit demselben Schema, das als sys.system_objects bezeichnet wird, die Systemobjekte anzeigt. Eine andere Ansicht, die als sys.all_objects bezeichnet wird, zeigt sowohl System- als auch Benutzerobjekte an. Alle drei Katalogsichten weisen die gleiche Struktur auf.
In dieser Version von SQL Server gilt ein erweiterter Index, z. B. ein XML-Index oder räumlicher Index, als interne Tabelle in sys.objects
(type
ist IT
und type_desc
ist INTERNAL_TABLE
). Für einen erweiterten Index gilt:
name
ist der interne Name der Indextabelle.parent_object_id
ist dieobject_id
Basistabelle.is_ms_shipped
,is_published
undis_schema_published
Spalten werden auf0
Verwandte Systemansichten
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. 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. 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
INNER JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO