OBJECTPROPERTY (Transact-SQL)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL verwaltete Instanz
Azure Synapse Analytics
Platform System (PDW)
SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
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)