sys.objects (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Endpunkt in Microsoft FabricWarehouse 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 die object_id der Basistabelle.

  • Die Spalten is_ms_shipped, is_published und is_schema_published sind auf 0 festgelegt.

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

Weitere Informationen