OBJECTPROPERTYEX (Transact-SQL)

Aktualisiert: 12. Dezember 2006

Gibt Informationen zu Objekten mit Schemabereich der aktuellen Datenbank zurück. Eine Liste dieser Objekte finden Sie unter sys.objects (Transact-SQL). OBJECTPROPERTYEX kann nicht für Objekte verwendet werden, die keine Objekte mit Schemabereich sind, wie z. B. Trigger der Datendefinitionssprache (DDL, Data Definition Language) und Ereignisbenachrichtigungen.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

OBJECTPROPERTYEX ( id , property )

Argumente

  • id
    Ein Ausdruck, der die ID des Objekts in der aktuellen Datenbank darstellt. id ist vom Datentyp int. Es wird davon ausgegangen, dass es sich hierbei um ein Objekt mit Schemabereich im aktuellen Datenbankkontext handelt.
  • property
    Ein Ausdruck, der die Informationen enthält, die für das durch id angegebene Objekt zurückgegeben werden sollen. Der Rückgabetyp ist sql_variant. Die folgende Tabelle zeigt den Basisdatentyp für jeden Eigenschaftswert.

    ms188390.note(de-de,SQL.90).gifHinweis:
    Sofern nichts anderes angegeben ist, wird NULL zurückgegeben, wenn property kein gültiger Eigenschaftsname ist, id keine gültige Objekt-ID ist, id ein nicht unterstützter Objekttyp für den angegebenen Wert von property ist oder der Aufrufer nicht über die Berechtigung zum Anzeigen der Metadaten des Objekts verfügt.

    Eigenschaftsname

Rückgabetypen

sql_variant

Ausnahmen

Gibt NULL bei einem Fehler zurück oder wenn ein Aufrufer nicht über Berechtigungen zum Anzeigen des Objekts verfügt.

In SQL Server 2005 kann ein Benutzer nur die Metadaten sicherungsfähiger Elemente anzeigen, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Dies bedeutet, dass Metadaten ausgebende integrierte Funktionen, z. B. OBJECTPROPERTYEX, möglicherweise NULL zurückgeben, wenn dem Benutzer für das Objekt keine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten und unter Behandlung von Problemen bei der Sichtbarkeit von Metadaten.

Hinweise

Datenbankmodul setzt voraus, dass sich object_id im aktuellen Datenbankkontext befindet. Eine Abfrage, die auf einen Wert von object_id in einer anderen Datenbank verweist, gibt NULL oder falsche Ergebnisse zurück. Beispielsweise ist der aktuelle Datenbankkontext in der folgenden Abfrage die master-Datenbank. Datenbankmodul versucht, den Eigenschaftswert für den angegebenen Wert von object_id in dieser Datenbank statt in der Datenbank, die in der Abfrage angegeben ist, zurückzugeben. Die Abfrage gibt falsche Ergebnisse zurück, da sich die vEmployee-Sicht nicht in der master-Datenbank befindet.

USE master;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'AdventureWorks.HumanResources.vEmployee'), 'IsView');
GO

OBJECTPROPERTYEX(view_id**,'IsIndexable'**) hat möglicherweise einen hohen Verbrauch an Computerressourcen, da die Auswertung der IsIndexable-Eigenschaft das Analysieren der Sichtdefinition, die Normalisierung und die partielle Optimierung erfordert. Obwohl die IsIndexable-Eigenschaft Tabellen oder Sichten identifiziert, die indiziert werden können, kann die tatsächliche Erstellung des Indexes dennoch fehlschlagen, wenn bestimmte Indexschlüsselanforderungen nicht erfüllt sind. Weitere Informationen finden Sie unter CREATE INDEX (Transact-SQL).

OBJECTPROPERTYEX (table_id**,'TableHasActiveFulltextIndex'**) gibt den Wert 1 (True) zurück, wenn mindestens eine Spalte einer Tabelle für die Indizierung hinzugefügt wurde. Die Volltextindizierung wird für das Auffüllen aktiviert, sobald die erste Spalte für die Indizierung hinzugefügt wird.

Einschränkungen für die Sichtbarkeit von Metadaten werden auf das Resultset angewendet. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.

Beispiele

A. Suchen des Basistyps eines Objekts

Im folgenden Beispiel wird mithilfe von SYNONYM MyEmployeeTable ein Synonym für die Employee-Tabelle in der AdventureWorks-Datenbank erstellt und anschließend der Basistyp von SYNONYM zurückgegeben.

USE AdventureWorks;
GO
CREATE SYNONYM MyEmployeeTable FOR HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX ( object_id(N'MyEmployeeTable'), N'BaseType')AS [Base Type];
GO

Das Resultset zeigt, dass es sich bei dem Basistyp des zugrunde liegenden Objekts, der Employee-Tabelle, um eine Benutzertabelle handelt.

Base Type 
-------- 
U 

B. Zurückgeben eines Eigenschaftswertes

Im folgenden Beispiel wird die Anzahl der UPDATE-Trigger für die angegebene Tabelle zurückgegeben.

USE AdventureWorks;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'HumanResources.Employee'), N'TABLEUPDATETRIGGERCOUNT');
GO

C. Suchen von Tabellen, die eine FOREIGN KEY-Einschränkung aufweisen

Im folgenden Beispiel wird die TableHasForeignKey-Eigenschaft verwendet, um alle Tabellen zurückzugeben, die eine FOREIGN KEY-Einschränkung aufweisen.

USE AdventureWorks;
GO
SELECT name, object_id, schema_id, type_desc
FROM sys.objects 
WHERE OBJECTPROPERTYEX(object_id, N'TableHasForeignKey') = 1
ORDER BY name;
GO

Siehe auch

Verweis

CREATE SYNONYM (Transact-SQL)
Metadatenfunktionen (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL)
OBJECT_NAME (Transact-SQL)
sys.objects (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
TYPEPROPERTY (Transact-SQL)

Andere Ressourcen

Trennung von Benutzer und Schema

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Neuer Inhalt:
  • Die in Service Pack 2 verfügbare TableHasVarDecimalStorageFormat-Eigenschaft wurde hinzugefügt.

17. Juli 2006

Neuer Inhalt:
  • Der Abschnitt mit den Ausnahmen wurde hinzugefügt.

05. Dezember 2005

Geänderter Inhalt:
  • Definition der Eigenschaften IsTableFunction und IsScalarFunction korrigiert.
  • Beispiel C geändert.