OBJECTPROPERTY (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

Gibt Informationen zu schemabezogenen Objekten in der aktuellen Datenbank zurück. Eine Liste der schemabezogenen Objekte finden Sie unter sys.objects (Transact-SQL). Diese Funktion kann nicht für Objekte ohne Schemabereich verwendet werden, wie z. B. DDL-Trigger (DDL, Data Definition Language) und Ereignisbenachrichtigungen.

Transact-SQL-Syntaxkonventionen

Syntax

OBJECTPROPERTY ( id , property )   

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

id
Ein Ausdruck, der die ID des Objekts in der aktuellen Datenbank darstellt. id ist vom Datentyp int, und es wird davon ausgegangen, dass es ein schemabezogenes Objekt im aktuellen Datenbankkontext ist.

property
Ein Ausdruck, der die Informationen darstellt, die für das Objekt zurückgeben werden, das mit id angegeben wird. property kann einen der folgenden Werte besitzen.

Hinweis

Wenn nicht anders angegeben, 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 die angegebene Eigenschaft ist oder der Aufrufer nicht über die Berechtigung zum Anzeigen der Metadaten des Objekts verfügt.

Eigenschaftenname Objekttyp Beschreibung und Rückgabewerte
CnstIsClustKey Constraint PRIMARY KEY-Einschränkung mit einem gruppierten Index.

1 = True

0 = False
CnstIsColumn Constraint Einschränkung CHECK, DEFAULT oder FOREIGN KEY für eine einzelne Spalte.

1 = True

0 = False
CnstIsDeleteCascade Constraint FOREIGN KEY-Einschränkung mit der ON DELETE CASCADE-Option.

1 = True

0 = False
CnstIsDisabled Constraint Deaktivierte Einschränkung.

1 = True

0 = False
CnstIsNonclustKey Constraint PRIMARY KEY- oder UNIQUE-Einschränkung mit einem nicht gruppierten Index.

1 = True

0 = False
CnstIsNotRepl Constraint Die Einschränkung wird mithilfe der Schlüsselwörter NOT FOR REPLICATION definiert.

1 = True

0 = False
CnstIsNotTrusted Constraint Die Einschränkung wurde ohne Überprüfung der vorhandenen Zeilen aktiviert und gilt daher möglicherweise nicht für alle Zeilen.

1 = True

0 = False
CnstIsUpdateCascade Constraint FOREIGN KEY-Einschränkung mit der ON UPDATE CASCADE-Option.

1 = True

0 = False
ExecIsAfterTrigger Trigger AFTER-Trigger.

1 = True

0 = False
ExecIsAnsiNullsOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Transact-SQL-Trigger, Sicht Einstellung von ANSI_NULLS zum Zeitpunkt der Erstellung.

1 = True

0 = False
ExecIsDeleteTrigger Trigger DELETE-Trigger.

1 = True

0 = False
ExecIsFirstDeleteTrigger Trigger Der erste Trigger, der beim Ausführen einer DELETE-Anweisung für die Tabelle ausgelöst wird.

1 = True

0 = False
ExecIsFirstInsertTrigger Trigger Der erste Trigger, der beim Ausführen einer INSERT-Anweisung für die Tabelle ausgelöst wird.

1 = True

0 = False
ExecIsFirstUpdateTrigger Trigger Der erste Trigger, der beim Ausführen einer UPDATE-Anweisung für die Tabelle ausgelöst wird.

1 = True

0 = False
ExecIsInsertTrigger Trigger INSERT-Trigger.

1 = True

0 = False
ExecIsInsteadOfTrigger Trigger INSTEAD OF-Trigger.

1 = True

0 = False
ExecIsLastDeleteTrigger Trigger Der letzte Trigger, der beim Ausführen einer DELETE-Anweisung für die Tabelle ausgelöst wird.

1 = True

0 = False
ExecIsLastInsertTrigger Trigger Der letzte Trigger, der beim Ausführen einer INSERT-Anweisung für die Tabelle ausgelöst wird.

1 = True

0 = False
ExecIsLastUpdateTrigger Trigger Der letzte Trigger, der beim Ausführen einer UPDATE-Anweisung für die Tabelle ausgelöst wird.

1 = True

0 = False
ExecIsQuotedIdentOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Transact-SQL-Trigger, Sicht Einstellung von QUOTED_IDENTIFIER zum Zeitpunkt der Erstellung.

1 = True

0 = False
ExecIsStartup Verfahren Autostartprozedur.

1 = True

0 = False
ExecIsTriggerDisabled Trigger Deaktivierter Trigger.

1 = True

0 = False
ExecIsTriggerNotForRepl Trigger Als NOT FOR REPLICATION definierter Trigger.

1 = True

0 = False
ExecIsUpdateTrigger Trigger UPDATE-Trigger.

1 = True

0 = False
ExecIsWithNativeCompilation Transact-SQL-Prozedur Gilt für: SQL Server 2014 (12.x) und höher.

Die Prozedur wird systemintern kompiliert.

1 = True

0 = False

Basisdatentyp: int
HasAfterTrigger Tabelle, Sicht Die Tabelle oder Sicht besitzt einen AFTER-Trigger.

1 = True

0 = False
HasDeleteTrigger Tabelle, Sicht Die Tabelle oder Sicht besitzt einen DELETE-Trigger.

1 = True

0 = False
HasInsertTrigger Tabelle, Sicht Die Tabelle oder Sicht besitzt einen INSERT-Trigger.

1 = True

0 = False
HasInsteadOfTrigger Tabelle, Sicht Die Tabelle oder Sicht besitzt einen INSTEAD OF-Trigger.

1 = True

0 = False
HasUpdateTrigger Tabelle, Sicht Die Tabelle oder Sicht besitzt einen UPDATE-Trigger.

1 = True

0 = False
IsAnsiNullsOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Tabelle, Transact-SQL-Trigger, Sicht Gibt an, dass die Option ANSI NULLS für die Tabelle auf ON gesetzt wurde. Das bedeutet, dass alle Vergleiche mit einem Nullwert UNKNOWN ergeben. Diese Einstellung gilt für alle Ausdrücke in der Tabellendefinition, einschließlich berechneter Spalten und Einschränkungen, solange die Tabelle vorhanden ist.

1 = True

0 = False
IsCheckCnst Ein beliebiges schemabezogenes Objekt CHECK-Einschränkung.

1 = True

0 = False
IsConstraint Ein beliebiges schemabezogenes Objekt Eine einspaltige CHECK-, DEFAULT- oder FOREIGN KEY-Einschränkung für eine Spalte oder Tabelle.

1 = True

0 = False
IsDefault Ein beliebiges schemabezogenes Objekt Gilt für: SQL Server 2008 (10.0.x) und höher.

Gebundener Standard.

1 = True

0 = False
IsDefaultCnst Ein beliebiges schemabezogenes Objekt DEFAULT-Einschränkung.

1 = True

0 = False
IsDeterministic Funktion, Sicht Die Determinismuseigenschaft der Funktion oder Sicht.

1 = Deterministisch

0 = Nicht deterministisch
IsEncrypted Transact-SQL-Funktion, Transact-SQL-Prozedur, Tabelle, Transact-SQL-Trigger, Sicht Gibt an, dass der Originaltext der Modulanweisung in ein verborgenes Format umgewandelt wurde. Die Ausgabe der Verbergung ist nicht direkt in den Katalogsichten in SQL Server 2005 (9.x) sichtbar. Benutzer, die keinen Zugriff auf Systemtabellen oder Datenbankdateien haben, können den verborgenen Text nicht abrufen. Der Text ist jedoch für Benutzer verfügbar, die entweder auf die Systemtabellen über den DAC-Port oder direkt auf die Datenbankdateien zugreifen können. Des Weiteren können Benutzer, die einen Debugger an den Serverprozess anfügen können, die ursprüngliche Prozedur zur Laufzeit aus dem Arbeitsspeicher abrufen.

1 = Verschlüsselt.

0 = Nicht verschlüsselt

Basisdatentyp: int
IsExecuted Ein beliebiges schemabezogenes Objekt Das Objekt kann ausgeführt werden (Sicht, Prozedur, Funktion oder Trigger).

1 = True

0 = False
IsExtendedProc Ein beliebiges schemabezogenes Objekt Erweiterte Prozedur.

1 = True

0 = False
IsForeignKey Ein beliebiges schemabezogenes Objekt FOREIGN KEY-Einschränkung.

1 = True

0 = False
IsIndexed Tabelle, Sicht Eine Tabelle oder Sicht, die über einen Index verfügt.

1 = True

0 = False
IsIndexable Tabelle, Sicht Eine Tabelle oder Sicht, für die ein Index erstellt werden kann.

1 = True

0 = False
IsInlineFunction Funktion Inlinefunktion.

1 = Inlinefunktion

0 = Keine Inlinefunktion
IsMSShipped Ein beliebiges schemabezogenes Objekt Ein Objekt, das bei der Installation von SQL Server erstellt wurde.

1 = True

0 = False
IsPrimaryKey Ein beliebiges schemabezogenes Objekt PRIMARY KEY-Einschränkung.

1 = True

0 = False

NULL = Keine Funktion oder ungültige Objekt-ID
IsProcedure Ein beliebiges schemabezogenes Objekt Prozedur.

1 = True

0 = False
IsQuotedIdentOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Tabelle, Transact-SQL-Trigger, Sicht, CHECK-Einschränkung, DEFAULT-Definition Gibt an, dass ON die Einstellung von quoted identifier für das Objekt ist. Das bedeutet, dass Begrenzungsbezeichner mit doppelten Anführungszeichen in allen Ausdrücken gekennzeichnet sind, die an der Objektdefinition beteiligt sind.

1 = ON

0 = OFF
IsQueue Ein beliebiges schemabezogenes Objekt Service Broker-Warteschlange.

1 = True

0 = False
IsReplProc Ein beliebiges schemabezogenes Objekt Replikationsprozedur.

1 = True

0 = False
IsRule Ein beliebiges schemabezogenes Objekt Gebundene Regel.

1 = True

0 = False
IsScalarFunction Funktion Skalarwertfunktion.

1 = Skalarwertfunktion

0 = Keine Skalarwertfunktion
IsSchemaBound Funktion, Sicht Schemagebundene Funktion oder mithilfe von SCHEMABINDING erstellte Sicht.

1 = Schemagebunden

0 = Nicht schemagebunden
IsSystemTable Tabelle Systemtabelle.

1 = True

0 = False
IsSystemVerified Object Die Eigenschaften für Determinismus und Genauigkeit des Objekts können von SQL Server überprüft werden.

1 = True

0 = False
IsTable Tabelle Tabelle.

1 = True

0 = False
IsTableFunction Funktion Tabellenwertfunktion.

1 = Tabellenwertfunktion

0 = Keine Tabellenwertfunktion
IsTrigger Ein beliebiges schemabezogenes Objekt Trigger.

1 = True

0 = False
IsUniqueCnst Ein beliebiges schemabezogenes Objekt UNIQUE-Einschränkung.

1 = True

0 = False
IsUserTable Tabelle Benutzerdefinierte Tabelle.

1 = True

0 = False
IsView Ansicht Sicht.

1 = True

0 = False
OwnerId Ein beliebiges schemabezogenes Objekt Besitzer des Objekts.

Hinweis: Der Schemabesitzer ist nicht notwendigerweise der Objektbesitzer. Beispielsweise geben untergeordnete Objekte (Objekte, bei denen der Wert von parent_object_id ungleich NULL ist) immer die gleiche Besitzer-ID zurück wie das übergeordnete Objekt.

Nicht NULL = Die Datenbankbenutzer-ID des Objektbesitzers.
SchemaId Ein beliebiges schemabezogenes Objekt Die Schema-ID des Schemas, zu dem das Objekt gehört.
TableDeleteTrigger Tabelle Die Tabelle besitzt einen DELETE-Trigger.

> 1 = ID des ersten Triggers vom angegebenen Typ.
TableDeleteTriggerCount Tabelle Die Tabelle besitzt die angegebene Anzahl DELETE-Trigger.

> 0 = Anzahl von DELETE-Triggern.
TableFullTextMergeStatus Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Gibt an, ob eine Tabelle über einen Volltextindex verfügt, der gerade zusammengeführt wird.

0 = Tabelle hat keinen Volltextindex, oder der Volltextindex wird derzeit nicht zusammengeführt.

1 = Der Volltextindex wird derzeit zusammengeführt.
TableFullTextBackgroundUpdateIndexOn Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Updates im Hintergrund für den Volltextindex der Tabelle sind aktiviert (automatisches Nachverfolgen von Änderungen).

1 = TRUE

0 = FALSE
TableFulltextCatalogId Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

ID des Volltextkatalogs, in dem die Daten des Volltextindexes für die Tabelle gespeichert sind.

Ungleich 0 = ID des Volltextkatalogs, die dem eindeutigen Index zugeordnet ist, der die Zeilen in einer volltextindizierten Tabelle identifiziert.

0 = Die Tabelle besitzt keinen Volltextindex.
TableFulltextChangeTrackingOn Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Die Volltext-Änderungsnachverfolgung ist für die Tabelle aktiviert.

1 = TRUE

0 = FALSE
TableFulltextDocsProcessed Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Die Anzahl der seit dem Start der Volltextindizierung verarbeiteten Zeilen. In einer Tabelle, die für die Volltextsuche indiziert wird, werden alle Spalten einer Zeile als Teil eines zu indizierenden Dokuments betrachtet.

0 = Keine aktive Durchforstungs- oder Volltextindizierung wurde abgeschlossen.

> 0 = Eine der folgenden Möglichkeiten (A oder B): A) Die Anzahl der seit dem Start der vollständigen, inkrementellen oder manuellen Änderungsnachverfolgung mithilfe von Einfüge- und Updatevorgängen verarbeiteten Dokumente. B) Die Anzahl der Zeilen, die mithilfe von Einfüge- und Updatevorgängen verarbeitet wurden, seit die Änderungsnachverfolgung mit Auffüllung mithilfe von Indexupdates im Hintergrund aktiviert wurde, das Schema für den Volltextindex geändert wurde, der Volltextkatalog erneut erstellt wurde oder die Instanz von SQL Server neu gestartet wurde usw.

NULL = Die Tabelle besitzt keinen Volltextindex.

Diese Eigenschaft überwacht die Anzahl gelöschter Zeilen nicht und zählt sie auch nicht.
TableFulltextFailCount Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Die Anzahl von Zeilen, für die die Volltextsuche keinen Index erstellt hat.

0 = Die Auffüllung ist abgeschlossen.

> 0 = Eine der folgenden Möglichkeiten (A oder B): A) Die Anzahl der Dokumente, die seit dem Start der Auffüllung mithilfe der vollständigen, inkrementellen und manuellen Änderungsnachverfolgung für Updates nicht indiziert wurden. B) Bei der Änderungsnachverfolgung mit Indexupdate im Hintergrund die Anzahl der Zeilen, die seit dem Start der Auffüllung oder dem Neustart der Auffüllung nicht indiziert wurden. Ursache dafür kann eine Schemaänderung, eine Neuerstellung des Katalogs, ein Neustart des Servers usw. sein.

NULL = Die Tabelle besitzt keinen Volltextindex.
TableFulltextItemCount Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Die Anzahl von Zeilen, für die ein Volltextindex erfolgreich erstellt wurde.
TableFulltextKeyColumn Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

ID der Spalte, die dem eindeutigen einspaltigen Index zugeordnet ist, der Teil der Definition des Volltextindexes ist.

0 = Die Tabelle besitzt keinen Volltextindex.
TableFulltextPendingChanges Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Anzahl der zu verarbeitenden ausstehenden Änderungsnachverfolgungseinträge.

0 = Änderungsnachverfolgung ist nicht aktiviert.

NULL = Die Tabelle besitzt keinen Volltextindex.
TableFulltextPopulateStatus Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

0 = Im Leerlauf.

1 = Vollständige Auffüllung wird ausgeführt.

2 = Inkrementelle Auffüllung wird ausgeführt.

3 = Propagierung der Überarbeitungen wird ausgeführt.

4 = Indexupdate im Hintergrund wird ausgeführt, z. B. automatische Änderungsnachverfolgung.

5 = Volltextindizierung wurde gedrosselt oder angehalten.
TableHasActiveFulltextIndex Tabelle Gilt für: SQL Server 2008 (10.0.x) und höher.

Die Tabelle besitzt einen aktiven Volltextindex.

1 = True

0 = False
TableHasCheckCnst Tabelle Die Tabelle besitzt eine CHECK-Einschränkung.

1 = True

0 = False
TableHasClustIndex Tabelle Die Tabelle besitzt einen gruppierten Index.

1 = True

0 = False
TableHasDefaultCnst Tabelle Die Tabelle besitzt eine DEFAULT-Einschränkung.

1 = True

0 = False
TableHasDeleteTrigger Tabelle Die Tabelle besitzt einen DELETE-Trigger.

1 = True

0 = False
TableHasForeignKey Tabelle Die Tabelle besitzt eine FOREIGN KEY-Einschränkung.

1 = True

0 = False
TableHasForeignRef Tabelle Auf die Tabelle wird mit einer FOREIGN KEY-Einschränkung verwiesen.

1 = True

0 = False
TableHasIdentity Tabelle Die Tabelle besitzt eine Identitätsspalte.

1 = True

0 = False
TableHasIndex Tabelle Die Tabelle besitzt einen Index beliebigen Typs.

1 = True

0 = False
TableHasInsertTrigger Tabelle Das Objekt besitzt einen INSERT-Trigger.

1 = True

0 = False
TableHasNonclustIndex Tabelle Die Tabelle besitzt einen nicht gruppierten Index.

1 = True

0 = False
TableHasPrimaryKey Tabelle Die Tabelle besitzt einen Primärschlüssel.

1 = True

0 = False
TableHasRowGuidCol Tabelle Die Tabelle besitzt eine ROWGUIDCOL-Eigenschaft für eine uniqueidentifier-Spalte.

1 = True

0 = False
TableHasTextImage Tabelle Die Tabelle besitzt eine text-, ntext- oder image-Spalte.

1 = True

0 = False
TableHasTimestamp Tabelle Die Tabelle besitzt eine timestamp-Spalte.

1 = True

0 = False
TableHasUniqueCnst Tabelle Die Tabelle besitzt eine UNIQUE-Einschränkung.

1 = True

0 = False
TableHasUpdateTrigger Tabelle Das Objekt besitzt einen UPDATE-Trigger.

1 = True

0 = False
TableHasVarDecimalStorageFormat Tabelle Die Tabelle lässt das vardecimal-Speicherformat zu.

1 = True

0 = False
TableInsertTrigger Tabelle Die Tabelle besitzt einen INSERT-Trigger.

> 1 = ID des ersten Triggers vom angegebenen Typ.
TableInsertTriggerCount Tabelle Die Tabelle besitzt die angegebene Anzahl INSERT-Trigger.

> 0 = Anzahl von INSERT-Triggern.
TableIsFake Tabelle Die Tabelle ist in Wirklichkeit nicht vorhanden. Sie wird bei Bedarf durch SQL Server-Datenbank-Engine intern materialisiert.

1 = True

0 = False
TableIsLockedOnBulkLoad Tabelle Die Tabelle ist aufgrund eines bcp- oder BULK INSERT-Auftrags gesperrt.

1 = True

0 = False
TableIsMemoryOptimized Tabelle Gilt für: SQL Server 2014 (12.x) und höher.

Tabelle ist speicheroptimiert

1 = True

0 = False

Basisdatentyp: int

Weitere Informationen finden Sie unter In-Memory OLTP (Speicheroptimierung).
TableIsPinned Tabelle Die Tabelle ist fixiert, damit sie im Datencache gespeichert wird.

0 = False

Diese Funktion wird in SQL Server 2005 (9.x) und höheren Versionen nicht unterstützt.
TableTextInRowLimit Tabelle Die maximal zulässige Anzahl Byte für text in row.

Hat den Wert 0, wenn die Option text in row nicht festgelegt wurde.
TableUpdateTrigger Tabelle Die Tabelle besitzt einen UPDATE-Trigger.

> 1 = ID des ersten Triggers vom angegebenen Typ.
TableUpdateTriggerCount Tabelle Die Tabelle besitzt die angegebene Anzahl UPDATE-Trigger.

> 0 = Anzahl von UPDATE-Triggern.
TableHasColumnSet Tabelle Die Tabelle besitzt einen Spaltensatz.

0 = False

1 = True

Weitere Informationen finden Sie unter Verwenden von Spaltensätzen.
TableTemporalType Tabelle Gilt für: SQL Server 2016 (13.x) und höher.

Gibt den Typ der Tabelle an.

0 = Nicht temporale Tabelle

1 = Verlaufstabelle für die Tabelle mit Systemversionsverwaltung

2 = Temporale Tabelle mit Systemversionsverwaltung

Rückgabetypen

int

Ausnahmen

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

Berechtigungen

Ein Benutzer kann 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. OBJECTPROPERTY, möglicherweise NULL zurückgeben, wenn dem Benutzer für das Objekt keine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Bemerkungen

Datenbank-Engine setzt voraus, dass sich object_id im aktuellen Datenbankkontext befindet. Eine Abfrage, die auf object_id in einer anderen Datenbank verweist, gibt NULL oder falsche Ergebnisse zurück. Beispielsweise ist der aktuelle Datenbankkontext in der folgenden Abfrage die Masterdatenbank. Datenbank-Engine versucht, den Eigenschaftenwert für die angegebene object_id in dieser Datenbank zurückzugeben und nicht in der Datenbank, die in der Abfrage angegeben ist. Die Abfrage gibt falsche Ergebnisse zurück, da sich die vEmployee-Sicht nicht in der Masterdatenbank befindet.

USE master;  
GO  
SELECT OBJECTPROPERTY(OBJECT_ID(N'AdventureWorks2022.HumanResources.vEmployee'), 'IsView');  
GO  

OBJECTPROPERTY(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).

OBJECTPROPERTY(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.

Beim Erstellen einer Tabelle wird die Option QUOTED IDENTIFIER immer als ON in den Metadaten der Tabelle gespeichert, selbst wenn die Option beim Erstellen der Tabelle auf OFF festgelegt war. Deshalb gibt OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') immer den Wert 1 (TRUE) zurück.

Beispiele

A. Überprüfen, ob ein Objekt in einer Tabelle vorhanden ist

Im folgenden Beispiel wird getestet, ob UnitMeasure in der AdventureWorks2022-Datenbank eine Tabelle ist.

USE AdventureWorks2022;  
GO  
IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 1  
   PRINT 'UnitMeasure is a table.'  
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 0  
   PRINT 'UnitMeasure is not a table.'  
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') IS NULL  
   PRINT 'ERROR: UnitMeasure is not a valid object.';  
GO  

B. Überprüfen, ob eine benutzerdefinierte Skalarwertfunktion deterministisch ist

Im folgenden Beispiel wird getestet, ob die benutzerdefinierte Skalarwertfunktion ufnGetProductDealerPrice, die einen Wert vom Typ money zurückgibt, deterministisch ist.

USE AdventureWorks2022;  
GO  
SELECT OBJECTPROPERTY(OBJECT_ID('dbo.ufnGetProductDealerPrice'), 'IsDeterministic');  
GO  

Das Resultset zeigt, dass ufnGetProductDealerPrice keine deterministische Funktion ist.

-----  
0

C: Suchen der Tabellen, die zu einem bestimmten Schema gehören

Im folgenden Beispiel werden alle Tabellen im DBO-Schema zurückgegeben.

-- Uses AdventureWorks  
  
SELECT name, object_id, type_desc  
FROM sys.objects   
WHERE OBJECTPROPERTY(object_id, N'SchemaId') = SCHEMA_ID(N'dbo')  
ORDER BY type_desc, name;  
GO  

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

D: Überprüfen, ob ein Objekt eine Tabelle ist

Im folgenden Beispiel wird getestet, ob dbo.DimReseller in der AdventureWorksPDW2022-Datenbank eine Tabelle ist.

-- Uses AdventureWorks  
  
IF OBJECTPROPERTY (OBJECT_ID(N'dbo.DimReseller'),'ISTABLE') = 1  
   SELECT 'DimReseller is a table.'  
ELSE   
   SELECT 'DimReseller is not a table.';  
GO  

Siehe auch

COLUMNPROPERTY (Transact-SQL)
Metadatenfunktionen (Transact-SQL)
OBJECTPROPERTYEX (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
TYPEPROPERTY (Transact-SQL)
sys.objects (Transact-SQL)