sys.objects (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-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 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üfen
D = Standard (Einschränkung oder eigenständige Standardeinstellung)
F = Nebenbedingung für Fremdschlüssel
PK = Einschränkung des Primärschlüssels
R = Regel (alter Stil, eigenständig)
TA = Assembly -Trigger (CLR-Integration)
TR = SQL-Trigger
UQ = Eindeutige 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- 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üfen
D = Standard (Einschränkung oder eigenständige Standardeinstellung)
F = Nebenbedingung für Fremdschlüssel
FN = SQL-Skalarfunktion
FS = Assembly (CLR) skalare Funktion
FT = Assembly (CLR)-Funktion mit Tabellenwert
IF = SQL-Inlinetabellenwertfunktion (TVF)
IT = Interne Tabelle
P = GESPEICHERTe SQL-Prozedur
PC = Assembly (CLR) gespeicherte Prozedur
PG = Planleitfaden
PK = Einschränkung des Primärschlüssels
R = Regel (alter Stil, eigenständig)
RF = Replikationsfilter-Prozedur
S = Systembasistabelle
SN = Synonym
SO = Sequence-Objekt
U = Tabelle (benutzerdefiniert)
V = Ansicht

Gilt für: SQL Server 2012 (11.x) und höhere Versionen

SQ = Dienstwarteschlange
TA = ASSEMBLY (CLR) DML-Trigger
TF = SQL-Tabellenwert-Funktion (TVF)
TR = SQL DML-Trigger
TT = Tabellentyp
UQ = eindeutige Einschränkung
X = Erweiterte gespeicherte Prozedur

Gilt für: SQL Server 2014 (12.x) und höhere Versionen, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW)

ST = Statistikstruktur

Gilt für: SQL Server 2016 (13.x) und höhere Versionen, Azure SQL-Datenbank, Azure Synapse Analytics, Analytics Platform System (PDW)

ET = Externe Tabelle

Gilt 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 ITund type_desc ist INTERNAL_TABLE). Für einen erweiterten Index gilt:

  • name ist der interne Name der Indextabelle.
  • parent_object_id ist die object_id Basistabelle.
  • is_ms_shipped, is_publishedund is_schema_published Spalten werden auf 0

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