sys.objects (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaAzure SQL-Datenbank JaVerwaltete Azure SQL-Instanz JaAzure Synapse Analytics JaParallel Data Warehouse

Enthält eine Zeile für jedes benutzerdefinierte, schemaspezifische Objekt, das innerhalb einer Datenbank erstellt wird, einschließlich nativ kompilierter benutzerdefinierter Skalarfunktion.

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, befinden sich in sys.triggers. sys.triggers unterstützt eine Mischung aus Namens-Bereichsregeln 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-Plattformsystem (PDW) .

ST = STATS_TREE



Gilt für: SQL Server 2016 (13.x) und höher, , , Azure SQL-Datenbank Azure Synapse Analytics Analytics-Plattformsystem (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 das Objekt eine Tabelle oder Sicht ist, modify_date auch geändert, wenn ein Index für die Tabelle oder Sicht 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.

Bemerkungen

Sie können die integrierten funktionen OBJECT_ID, OBJECT_NAMEund OBJECTPROPERTY() auf die in sys.objects angezeigten Objekte anwenden.

Es gibt eine Version dieser Ansicht mit dem gleichen Schema, das sys.system_objects,das Systemobjekte zeigt. Es gibt eine weitere Ansicht namens sys.all_objects, die sowohl System- als auch Benutzerobjekte zeigt. Alle drei Katalogsichten weisen die gleiche Struktur auf.

In dieser Version von SQL Server wird ein erweiterter Index, beispielsweise ein XML-Index oder Räumlichkeitsindex, als interne Tabelle in sys.objects (type = IT and type_desc = INTERNAL_TABLE) betrachtet. 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 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. 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)
Abfragen des SQL Server Systemkatalogs – häufig gestellte Fragen
sys.internal_tables (Transact-SQL)