sys.objects (Transact-SQL)

Gilt für: SQL Server (alle unterstützten Versionen) Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Enthält eine Zeile für jedes benutzerdefinierte, schemabezogene Objekt, das in einer Datenbank erstellt wird, einschließlich systemeigener kompilierter benutzerdefinierter Funktionen.

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 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 = 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.
type 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 = 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 Das Datum, an dem das Objekt zuletzt mithilfe einer ALTER-Anweisung geändert wurde. Wenn das Objekt eine Tabelle oder eine Ansicht ist, ä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.

Bemerkungen

Sie können die integrierten Funktionen OBJECT_ID, OBJECT_NAME und OBJECTPROPERTY() auf die in " angezeigten sys.objectsObjekte" 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 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 die object_id Basistabelle.

  • is_ms_shippedis_published, und is_schema_published Spalten werden auf 0" festgelegt.

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