Freigeben über


OBJEKTEIGENSCHAFT (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank 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 )

Argumente

ID

Ausdruck, der die ID des Objekts in der aktuellen Datenbank darstellt. DIE ID ist int und wird als schemabezogenes Objekt im aktuellen Datenbankkontext angenommen.

property

Ausdruck, der die Informationen darstellt, die für das durch die ID angegebene Objekt zurückgegeben werden sollen. eigenschaft kann einer der folgenden Werte sein.

Hinweis

Sofern nicht anders angegeben, wird zurückgegeben, NULL wenn die Eigenschaft kein gültiger Eigenschaftsname ist, die ID keine gültige Objekt-ID ist, die ID ein nicht unterstützter Objekttyp für die angegebene Eigenschaft ist, oder der Aufrufer verfügt nicht über die Berechtigung, die Metadaten des Objekts anzuzeigen.

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

1 = Wahr

0 = Falsch
CnstIsColumn Constraint CHECK, DEFAULToder FOREIGN KEY Einschränkung für eine einzelne Spalte.

1 = Wahr

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

1 = Wahr

0 = Falsch
CnstIsDisabled Constraint Deaktivierte Einschränkung.

1 = Wahr

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

1 = Wahr

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

1 = Wahr

0 = Falsch
CnstIsNotTrusted Constraint Einschränkung wurde aktiviert, ohne vorhandene Zeilen zu überprüfen; Daher kann die Einschränkung nicht für alle Zeilen enthalten sein.

1 = Wahr

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

1 = Wahr

0 = Falsch
ExecIsAfterTrigger Trigger AFTER auslösen.

1 = Wahr

0 = Falsch
ExecIsAnsiNullsOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Transact-SQL-Trigger, Sicht Einstellung zur ANSI_NULLS Erstellungszeit.

1 = Wahr

0 = Falsch
ExecIsDeleteTrigger Trigger DELETE auslösen.

1 = Wahr

0 = Falsch
ExecIsFirstDeleteTrigger Trigger Der erste Trigger wird ausgelöst, wenn eine DELETE für die Tabelle ausgeführt wird.

1 = Wahr

0 = Falsch
ExecIsFirstInsertTrigger Trigger Der erste Trigger wird ausgelöst, wenn eine INSERT für die Tabelle ausgeführt wird.

1 = Wahr

0 = Falsch
ExecIsFirstUpdateTrigger Trigger Der erste Trigger wird ausgelöst, wenn eine UPDATE für die Tabelle ausgeführt wird.

1 = Wahr

0 = Falsch
ExecIsInsertTrigger Trigger INSERT auslösen.

1 = Wahr

0 = Falsch
ExecIsInsteadOfTrigger Trigger INSTEAD OF auslösen.

1 = Wahr

0 = Falsch
ExecIsLastDeleteTrigger Trigger Letzter Trigger ausgelöst, wenn eine DELETE für die Tabelle ausgeführt wird.

1 = Wahr

0 = Falsch
ExecIsLastInsertTrigger Trigger Letzter Trigger ausgelöst, wenn ein INSERT Trigger für die Tabelle ausgeführt wird.

1 = Wahr

0 = Falsch
ExecIsLastUpdateTrigger Trigger Letzter Trigger ausgelöst, wenn ein UPDATE Trigger für die Tabelle ausgeführt wird.

1 = Wahr

0 = Falsch
ExecIsQuotedIdentOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Transact-SQL-Trigger, Sicht Einstellung zur QUOTED_IDENTIFIER Erstellungszeit.

1 = Wahr

0 = Falsch
ExecIsStartup Verfahren Autostartprozedur.

1 = Wahr

0 = Falsch
ExecIsTriggerDisabled Trigger Deaktivierter Trigger.

1 = Wahr

0 = Falsch
ExecIsTriggerNotForRepl Trigger Trigger definiert als NOT FOR REPLICATION.

1 = Wahr

0 = Falsch
ExecIsUpdateTrigger Trigger UPDATE auslösen.

1 = Wahr

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

Die Prozedur wird systemintern kompiliert.

1 = Wahr

0 = Falsch

Basisdatentyp: int
HasAfterTrigger Tabelle oder Ansicht Tabelle oder Ansicht hat einen AFTER Trigger.

1 = Wahr

0 = Falsch
HasDeleteTrigger Tabelle oder Ansicht Tabelle oder Ansicht hat einen DELETE Trigger.

1 = Wahr

0 = Falsch
HasInsertTrigger Tabelle oder Ansicht Tabelle oder Ansicht hat einen INSERT Trigger.

1 = Wahr

0 = Falsch
HasInsteadOfTrigger Tabelle oder Ansicht Tabelle oder Ansicht hat einen INSTEAD OF Trigger.

1 = Wahr

0 = Falsch
HasUpdateTrigger Tabelle oder Ansicht Tabelle oder Ansicht hat einen UPDATE Trigger.

1 = Wahr

0 = Falsch
IsAnsiNullsOn Transact-SQL-Funktion, Transact-SQL-Prozedur, Tabelle, Transact-SQL-Trigger, Sicht Gibt an, dass die ANSI NULLS Optionseinstellung für die Tabelle lautet ON. Wenn ANSI NULLS dies der Wert istON, werden alle Vergleiche mit einem NULL Wert ausgewertet.UNKNOWN Diese Einstellung gilt für alle Ausdrücke in der Tabellendefinition, einschließlich berechneter Spalten und Einschränkungen, solange die Tabelle vorhanden ist.

1 = Wahr

0 = Falsch
IsCheckCnst Ein beliebiges schemabezogenes Objekt CHECK Zwang.

1 = Wahr

0 = Falsch
IsConstraint Ein beliebiges schemabezogenes Objekt Ist eine einzelne Spalte CHECKoder DEFAULTFOREIGN KEY Einschränkung für eine Spalte oder Tabelle.

1 = Wahr

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

Gebundener Standard.

1 = Wahr

0 = Falsch
IsDefaultCnst Ein beliebiges schemabezogenes Objekt DEFAULT Zwang.

1 = Wahr

0 = Falsch
IsDeterministic Funktion oder Ansicht 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 über die Diagnoseverbindung für Datenbankadministratoren auf Systemtabellen zugreifen oder direkt auf 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 = Wahr

0 = Falsch
IsExtendedProc Ein beliebiges schemabezogenes Objekt Erweiterte Prozedur.

1 = Wahr

0 = Falsch
IsForeignKey Ein beliebiges schemabezogenes Objekt FOREIGN KEY Zwang.

1 = Wahr

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

1 = Wahr

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

1 = Wahr

0 = Falsch
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 = Wahr

0 = Falsch
IsPrimaryKey Ein beliebiges schemabezogenes Objekt PRIMARY KEY Zwang.

1 = Wahr

0 = Falsch

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

1 = Wahr

0 = Falsch
IsQuotedIdentOn Transact-SQL Funktion, Transact-SQL Prozedur, Tabelle, Transact-SQL Trigger, Ansicht, CHECK Einschränkung, DEFAULT Definition Gibt an, dass die Einstellung für den zitierten Bezeichner für das Objekt ist ON. 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 = Wahr

0 = Falsch
IsReplProc Ein beliebiges schemabezogenes Objekt Replikationsprozedur.

1 = Wahr

0 = Falsch
IsRule Ein beliebiges schemabezogenes Objekt Gebundene Regel.

1 = Wahr

0 = Falsch
IsScalarFunction Funktion Skalarwertfunktion.

1 = Skalarwertfunktion

0 = Keine Skalarwertfunktion
IsSchemaBound Funktion oder Ansicht Eine schemagebundene Funktion oder Ansicht, die mithilfe von SCHEMABINDING.

1 = Schemagebunden

0 = Nicht schemagebunden
IsSystemTable Tabelle Systemtabelle.

1 = Wahr

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

1 = Wahr

0 = Falsch
IsTable Tabelle Tabelle.

1 = Wahr

0 = Falsch
IsTableFunction Funktion Tabellenwertfunktion.

1 = Tabellenwertfunktion

0 = Keine Tabellenwertfunktion
IsTrigger Ein beliebiges schemabezogenes Objekt Trigger.

1 = Wahr

0 = Falsch
IsUniqueCnst Ein beliebiges schemabezogenes Objekt UNIQUE Zwang.

1 = Wahr

0 = Falsch
IsUserTable Tabelle Benutzerdefinierte Tabelle.

1 = Wahr

0 = Falsch
IsView Ansicht Sicht.

1 = Wahr

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

Hinweis: Der Schemabesitzer ist nicht notwendigerweise der Objektbesitzer. Untergeordnete Objekte (bei denen parent_object_id ungleich Null sind) geben beispielsweise immer dieselbe Besitzer-ID wie das übergeordnete Objekt zurück.

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

> 1 = ID des ersten Triggers vom angegebenen Typ.
TableDeleteTriggerCount Tabelle Tabelle weist die angegebene Anzahl von DELETE Triggern auf.

>0 = Die Anzahl der DELETE Trigger.
TableFullTextMergeStatus Tabelle Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen

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öhere Versionen

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

1 = WAHR

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

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öhere Versionen

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

1 = WAHR

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

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 von Einfüge- oder Aktualisierungsvorgängen verarbeitet wurden, da die Änderungsnachverfolgung mit der Indexgesamtheit für Hintergrundaktualisierungen aktiviert wurde, das Volltextindexschema geändert wurde, der Volltextkatalog neu erstellt wurde oder die Instanz von SQL Server neu gestartet wurde.

NULL = Tabelle hat 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öhere Versionen

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

0 = Die Bevölkerung wurde 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 = Tabelle hat keinen Volltextindex.
TableFulltextItemCount Tabelle Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen

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öhere Versionen

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öhere Versionen

Anzahl der zu verarbeitenden ausstehenden Änderungsnachverfolgungseinträge.

0 = Änderungsnachverfolgung ist nicht aktiviert.

NULL = Tabelle hat keinen Volltextindex.
TableFulltextPopulateStatus Tabelle Gilt für: SQL Server 2008 (10.0.x) und höhere Versionen

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öhere Versionen

Die Tabelle besitzt einen aktiven Volltextindex.

1 = Wahr

0 = Falsch
TableHasCheckCnst Tabelle Tabelle weist eine CHECK Einschränkung auf.

1 = Wahr

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

1 = Wahr

0 = Falsch
TableHasDefaultCnst Tabelle Tabelle weist eine DEFAULT Einschränkung auf.

1 = Wahr

0 = Falsch
TableHasDeleteTrigger Tabelle Tabelle hat einen DELETE Trigger.

1 = Wahr

0 = Falsch
TableHasForeignKey Tabelle Tabelle weist eine FOREIGN KEY Einschränkung auf.

1 = Wahr

0 = Falsch
TableHasForeignRef Tabelle Auf die Tabelle wird durch eine FOREIGN KEY Einschränkung verwiesen.

1 = Wahr

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

1 = Wahr

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

1 = Wahr

0 = Falsch
TableHasInsertTrigger Tabelle Objekt hat einen INSERT Trigger.

1 = Wahr

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

1 = Wahr

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

1 = Wahr

0 = Falsch
TableHasRowGuidCol Tabelle Tabelle verfügt über eine ROWGUIDCOL Spalte mit eindeutigen Identifizierern .

1 = Wahr

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

1 = Wahr

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

1 = Wahr

0 = Falsch
TableHasUniqueCnst Tabelle Tabelle weist eine UNIQUE Einschränkung auf.

1 = Wahr

0 = Falsch
TableHasUpdateTrigger Tabelle Objekt hat einen UPDATE Trigger.

1 = Wahr

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

1 = Wahr

0 = Falsch
TableInsertTrigger Tabelle Tabelle hat einen INSERT Trigger.

> 1 = ID des ersten Triggers vom angegebenen Typ.
TableInsertTriggerCount Tabelle Tabelle weist die angegebene Anzahl von INSERT Triggern auf.

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

1 = Wahr

0 = Falsch
TableIsLockedOnBulkLoad Tabelle Die Tabelle ist aufgrund eines bcp oder BULK INSERT auftrags gesperrt.

1 = Wahr

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

Tabelle ist speicheroptimiert

1 = Wahr

0 = Falsch

Basisdatentyp: int

Weitere Informationen finden Sie unter In-Memory OLTP-Übersichts- und Nutzungsszenarien.
TableIsPinned Tabelle Die Tabelle ist fixiert, damit sie im Datencache gespeichert wird.

0 = Falsch

Dieses Feature 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 Tabelle hat einen UPDATE Trigger.

> 1 = ID des ersten Triggers vom angegebenen Typ.
TableUpdateTriggerCount Tabelle Die Tabelle weist die angegebene Anzahl von UPDATE Triggern auf.

> 0 = Die Anzahl der UPDATE Trigger.
TableHasColumnSet Tabelle Die Tabelle besitzt einen Spaltensatz.

0 = Falsch

1 = Wahr

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

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 einen Fehler zurück oder wenn ein Aufrufer nicht über die Berechtigung 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 metadatenmittierende, integrierte Funktionen wie OBJECTPROPERTY rückgaben NULL , wenn der Benutzer keine Berechtigung für das Objekt besitzt. Weitere Informationen finden Sie in der Konfiguration der Metadatensichtbarkeit.

Bemerkungen

Datenbank-Engine setzt voraus, dass sich object_id im aktuellen Datenbankkontext befindet. Eine Abfrage, die auf eine object_id in einer anderen Datenbank verweist, gibt oder falsche Ergebnisse zurück NULL . In der folgenden Abfrage ist beispielsweise der aktuelle Datenbankkontext die master Datenbank. Das Datenbankmodul versucht, den Eigenschaftswert für die angegebene object_id in dieser Datenbank anstelle der in der Abfrage angegebenen Datenbank zurückzugeben. Die Abfrage gibt falsche Ergebnisse zurück, da sich die Ansicht vEmployee nicht in der master Datenbank befindet.

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

OBJECTPROPERTY(view_id, 'IsIndexable') kann erhebliche Computerressourcen verbrauchen, da die Auswertung der IsIndexable-Eigenschaft die Analyse der Ansichtsdefinition, Normalisierung und 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 einen Wert von 1 (true) zurück, wenn mindestens eine Spalte einer Tabelle für die Indizierung hinzugefügt wird. Die Volltextindizierung wird für das Auffüllen aktiviert, sobald die erste Spalte für die Indizierung hinzugefügt wird.

Wenn eine Tabelle erstellt wird, wird die QUOTED IDENTIFIER Option immer wie ON in den Metadaten der Tabelle gespeichert, auch wenn die Option auf OFF das Erstellen der Tabelle festgelegt ist. OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') Gibt daher immer einen Wert von 1 (true) zurück.

Beispiele

A. Überprüfen, ob ein Objekt eine Tabelle ist

Im folgenden Beispiel wird getestet, ob UnitMeasure in der AdventureWorks2025-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 skalare Funktion 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 schema_name(o.schema_id), o.name, o.object_id, o.type_desc
FROM sys.objects AS o
WHERE OBJECTPROPERTY(o.object_id, N'SchemaId') = SCHEMA_ID(N'dbo')
ORDER BY o.type_desc, o.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