Dela via


OBJECTPROPERTY (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Returnerar information om schemaomfattande objekt i den aktuella databasen. En lista över schemaomfattande objekt finns i sys.objects (Transact-SQL). Den här funktionen kan inte användas för objekt som inte är schemaomfattande, till exempel DDL-utlösare (datadefinitionsspråk) och händelsemeddelanden.

Transact-SQL syntaxkonventioner

Syntax

OBJECTPROPERTY ( ID , property )

Arguments

ID

Uttryck som representerar objektets ID i den aktuella databasen. ID är int och antas vara ett schemaomfattande objekt i den aktuella databaskontexten.

egenskap

Uttryck som representerar den information som ska returneras för objektet som anges av ID. egenskapen kan vara något av följande värden.

Anmärkning

Om inget annat NULL anges returneras när egenskapen inte är ett giltigt egenskapsnamn, ID är inte ett giltigt objekt-ID, ID är en objekttyp som inte stöds för den angivna egenskapen eller om anroparen inte har behörighet att visa objektets metadata.

Egenskapsnamn Objekttyp Beskrivning och värden som returneras
CnstIsClustKey Tvång PRIMARY KEY villkor med ett grupperat index.

1 = Sant

0 = Falskt
CnstIsColumn Tvång CHECK, DEFAULT, eller FOREIGN KEY villkor för en enskild kolumn.

1 = Sant

0 = Falskt
CnstIsDeleteCascade Tvång FOREIGN KEY villkor med alternativet ON DELETE CASCADE .

1 = Sant

0 = Falskt
CnstIsDisabled Tvång Inaktiverad begränsning.

1 = Sant

0 = Falskt
CnstIsNonclustKey Tvång PRIMARY KEY eller UNIQUE villkor med ett icke-grupperat index.

1 = Sant

0 = Falskt
CnstIsNotRepl Tvång Villkor definieras med hjälp av nyckelorden NOT FOR REPLICATION .

1 = Sant

0 = Falskt
CnstIsNotTrusted Tvång Villkoret har aktiverats utan att kontrollera befintliga rader. Begränsningen kanske därför inte gäller för alla rader.

1 = Sant

0 = Falskt
CnstIsUpdateCascade Tvång FOREIGN KEY villkor med alternativet ON UPDATE CASCADE .

1 = Sant

0 = Falskt
ExecIsAfterTrigger Trigger AFTER utlösa.

1 = Sant

0 = Falskt
ExecIsAnsiNullsOn Transact-SQL funktion, Transact-SQL procedur, Transact-SQL utlösare, visa Inställning för ANSI_NULLS när du skapar.

1 = Sant

0 = Falskt
ExecIsDeleteTrigger Trigger DELETE utlösa.

1 = Sant

0 = Falskt
ExecIsFirstDeleteTrigger Trigger Den första utlösaren utlöstes när en DELETE körs mot tabellen.

1 = Sant

0 = Falskt
ExecIsFirstInsertTrigger Trigger Den första utlösaren utlöstes när en INSERT körs mot tabellen.

1 = Sant

0 = Falskt
ExecIsFirstUpdateTrigger Trigger Den första utlösaren utlöstes när en UPDATE körs mot tabellen.

1 = Sant

0 = Falskt
ExecIsInsertTrigger Trigger INSERT utlösa.

1 = Sant

0 = Falskt
ExecIsInsteadOfTrigger Trigger INSTEAD OF utlösa.

1 = Sant

0 = Falskt
ExecIsLastDeleteTrigger Trigger Den sista utlösaren utlöstes när en DELETE körs mot tabellen.

1 = Sant

0 = Falskt
ExecIsLastInsertTrigger Trigger Den sista utlösaren utlöstes när en INSERT körs mot tabellen.

1 = Sant

0 = Falskt
ExecIsLastUpdateTrigger Trigger Den sista utlösaren utlöstes när en UPDATE körs mot tabellen.

1 = Sant

0 = Falskt
ExecIsQuotedIdentOn Transact-SQL funktion, Transact-SQL procedur, Transact-SQL utlösare, visa Inställning för QUOTED_IDENTIFIER när du skapar.

1 = Sant

0 = Falskt
ExecIsStartup Procedure Startprocedur.

1 = Sant

0 = Falskt
ExecIsTriggerDisabled Trigger Inaktiverad utlösare.

1 = Sant

0 = Falskt
ExecIsTriggerNotForRepl Trigger Utlösare definierad som NOT FOR REPLICATION.

1 = Sant

0 = Falskt
ExecIsUpdateTrigger Trigger UPDATE utlösa.

1 = Sant

0 = Falskt
ExecIsWithNativeCompilation Transact-SQL procedur gäller för: SQL Server 2014 (12.x) och senare versioner.

Proceduren kompileras internt.

1 = Sant

0 = Falskt

Basdatatyp: int
HasAfterTrigger Tabell eller vy Tabellen eller vyn har en AFTER utlösare.

1 = Sant

0 = Falskt
HasDeleteTrigger Tabell eller vy Tabellen eller vyn har en DELETE utlösare.

1 = Sant

0 = Falskt
HasInsertTrigger Tabell eller vy Tabellen eller vyn har en INSERT utlösare.

1 = Sant

0 = Falskt
HasInsteadOfTrigger Tabell eller vy Tabellen eller vyn har en INSTEAD OF utlösare.

1 = Sant

0 = Falskt
HasUpdateTrigger Tabell eller vy Tabellen eller vyn har en UPDATE utlösare.

1 = Sant

0 = Falskt
IsAnsiNullsOn Transact-SQL funktion, Transact-SQL procedur, tabell, Transact-SQL utlösare, visa Anger att alternativinställningen ANSI NULLS för tabellen är ON. När ANSI NULLS är ONutvärderas alla jämförelser mot ett NULL värde till UNKNOWN. Den här inställningen gäller för alla uttryck i tabelldefinitionen, inklusive beräknade kolumner och begränsningar, så länge tabellen finns.

1 = Sant

0 = Falskt
IsCheckCnst Alla schemaomfångsobjekt CHECK tvång.

1 = Sant

0 = Falskt
IsConstraint Alla schemaomfångsobjekt Är en enskild kolumn CHECK, DEFAULTeller FOREIGN KEY villkor för en kolumn eller tabell.

1 = Sant

0 = Falskt
IsDefault Alla schemaomfångsobjekt gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Bundet standardvärde.

1 = Sant

0 = Falskt
IsDefaultCnst Alla schemaomfångsobjekt DEFAULT tvång.

1 = Sant

0 = Falskt
IsDeterministic Funktion eller vy Determinismegenskapen för funktionen eller vyn.

1 = Deterministisk

0 = Inte deterministisk
IsEncrypted Transact-SQL funktion, Transact-SQL procedur, tabell, Transact-SQL utlösare, visa Anger att den ursprungliga texten i modulsatsen konverterades till ett fördunkkat format. Utdata från fördunklingen visas inte direkt i någon av katalogvyerna i SQL Server 2005 (9.x). Användare utan åtkomst till systemtabeller eller databasfiler kan inte hämta den fördunklade texten. Texten är dock tillgänglig för användare som antingen kan komma åt systemtabeller via diagnostikanslutningen för databasadministratörer eller direkt åtkomst till databasfiler. Användare som kan koppla ett felsökningsprogram till serverprocessen kan också hämta den ursprungliga proceduren från minnet vid körning.

1 = Krypterad

0 = Inte krypterad

Basdatatyp: int
IsExecuted Alla schemaomfångsobjekt Objektet kan köras (visa, procedur, funktion eller utlösare).

1 = Sant

0 = Falskt
IsExtendedProc Alla schemaomfångsobjekt Utökad procedur.

1 = Sant

0 = Falskt
IsForeignKey Alla schemaomfångsobjekt FOREIGN KEY tvång.

1 = Sant

0 = Falskt
IsIndexed Tabell eller vy Tabell eller vy som har ett index.

1 = Sant

0 = Falskt
IsIndexable Tabell eller vy Tabell eller vy där ett index kan skapas.

1 = Sant

0 = Falskt
IsInlineFunction Funktion Infogad funktion.

1 = Infogad funktion

0 = Inte infogad funktion
IsMSShipped Alla schemaomfångsobjekt Objekt som skapades under installationen av SQL Server.

1 = Sant

0 = Falskt
IsPrimaryKey Alla schemaomfångsobjekt PRIMARY KEY tvång.

1 = Sant

0 = Falskt

NULL = Inte en funktion eller så är objekt-ID ogiltigt.
IsProcedure Alla schemaomfångsobjekt Procedur.

1 = Sant

0 = Falskt
IsQuotedIdentOn Transact-SQL funktion, Transact-SQL procedur, tabell, Transact-SQL utlösare, visa, CHECK villkor, DEFAULT definition Anger att den angivna identifierarinställningen för objektet är ON. Det innebär att avgränsare av dubbla citattecken i alla uttryck som ingår i objektdefinitionen.

1 = ON

0 = OFF
IsQueue Alla schemaomfångsobjekt Service Broker-kö

1 = Sant

0 = Falskt
IsReplProc Alla schemaomfångsobjekt Replikeringsprocedur.

1 = Sant

0 = Falskt
IsRule Alla schemaomfångsobjekt Bunden regel.

1 = Sant

0 = Falskt
IsScalarFunction Funktion Scalar-värderad funktion.

1 = Scalar-värderad funktion

0 = Inte skalärvärdesfunktion
IsSchemaBound Funktion eller vy En schemabunden funktion eller vy som skapats med hjälp SCHEMABINDINGav .

1 = Schemabunden

0 = Inte schemabunden.
IsSystemTable Tabell Systemtabell.

1 = Sant

0 = Falskt
IsSystemVerified Object SQL Server kan verifiera determinism- och precisionsegenskaperna för objektet.

1 = Sant

0 = Falskt
IsTable Tabell Bord.

1 = Sant

0 = Falskt
IsTableFunction Funktion Tabellvärdesfunktion.

1 = Tabellvärdesfunktion

0 = Inte tabellvärdesfunktion
IsTrigger Alla schemaomfångsobjekt Utlösa.

1 = Sant

0 = Falskt
IsUniqueCnst Alla schemaomfångsobjekt UNIQUE tvång.

1 = Sant

0 = Falskt
IsUserTable Tabell Användardefinierad tabell.

1 = Sant

0 = Falskt
IsView View Utsikt.

1 = Sant

0 = Falskt
OwnerId Alla schemaomfångsobjekt Objektets ägare.

Not: Schemaägaren är inte nödvändigtvis objektägaren. Till exempel returnerar underordnade objekt (de där parent_object_id inte är null) alltid samma ägar-ID som det överordnade objektet.

Icke-null = databasanvändar-ID för objektägaren.
SchemaId Alla schemaomfångsobjekt Schema-ID för schemat som objektet tillhör.
TableDeleteTrigger Tabell Tabellen har en DELETE utlösare.

>1 = ID för den första utlösaren med den angivna typen.
TableDeleteTriggerCount Tabell Tabellen har det angivna antalet DELETE utlösare.

>0 = Antalet DELETE utlösare.
TableFullTextMergeStatus Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Om en tabell som har ett fulltextindex som för närvarande slås samman.

0 = Tabellen har inget fulltextindex eller så är fulltextindexet inte sammanfogat.

1 = Fulltextindexet är i sammanslagning.
TableFullTextBackgroundUpdateIndexOn Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Tabellen har fulltextbakgrundsuppdateringsindex (automatisk ändringsspårning) aktiverat.

1 = SANT

0 = FALSE
TableFulltextCatalogId Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

ID för den fulltextkatalog där fulltextindexdata för tabellen finns.

Nonzero = Katalog-ID för fulltext, associerat med det unika index som identifierar raderna i en indexerad tabell i fulltext.

0 = Tabellen har inget fulltextindex.
TableFulltextChangeTrackingOn Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

I tabellen finns ändringsspårning i fulltext aktiverat.

1 = SANT

0 = FALSE
TableFulltextDocsProcessed Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Antal rader som bearbetats sedan fulltextindexeringen inleddes. I en tabell som indexeras för fulltextsökning betraktas alla kolumner på en rad som en del av ett dokument som ska indexeras.

0 = Ingen aktiv crawlning eller fulltextindexering har slutförts.

> 0 = Något av följande (A eller B): A) Antalet dokument som bearbetats av infognings- eller uppdateringsåtgärder sedan fullständig, inkrementell eller manuell ändringsspårning startades. B) Antalet rader som bearbetats av infognings- eller uppdateringsåtgärder sedan ändringsspårning med bakgrundsuppdateringsindexpopulation aktiverades, fulltextindexschemat ändrades, fulltextkatalogen återskapades eller SQL Server-instansen startades om.

NULL = Tabellen har inget fulltextindex.

Den här egenskapen övervakar eller räknar inte borttagna rader.
TableFulltextFailCount Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Antalet rader Full-Text Sökningen indexerades inte.

0 = Populationen har slutförts.

> 0 = Något av följande (A eller B): A) Antalet dokument som inte indexerats sedan början av populationen Fullständig, Inkrementell och Manuell uppdateringsändring. B) För ändringsspårning med bakgrundsuppdateringsindex, antalet rader som inte indexerats sedan populationens början eller omstarten av populationen. Detta kan orsakas av en schemaändring, återskapande av katalogen, omstart av servern och så vidare.

NULL = Tabellen har inget fulltextindex.
TableFulltextItemCount Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Antal rader som har indexerats i fulltext.
TableFulltextKeyColumn Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

ID för kolumnen som är associerad med det unika indexet med en kolumn som deltar i fulltextindexdefinitionen.

0 = Tabellen har inget fulltextindex.
TableFulltextPendingChanges Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Antal väntande ändringsspårningsposter som ska bearbetas.

0 = ändringsspårning är inte aktiverat.

NULL = Tabellen har inget fulltextindex.
TableFulltextPopulateStatus Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

0 = Inaktiv.

1 = Hela populationen pågår.

2 = Inkrementell population pågår.

3 = Spridning av spårade ändringar pågår.

4 = Index för bakgrundsuppdatering pågår, till exempel automatisk ändringsspårning.

5 = Fulltextindexering begränsas eller pausas.
TableHasActiveFulltextIndex Tabell gäller för: SQL Server 2008 (10.0.x) och senare versioner.

Tabellen har ett aktivt fulltextindex.

1 = Sant

0 = Falskt
TableHasCheckCnst Tabell Tabellen har en CHECK begränsning.

1 = Sant

0 = Falskt
TableHasClustIndex Tabell Tabellen har ett grupperat index.

1 = Sant

0 = Falskt
TableHasDefaultCnst Tabell Tabellen har en DEFAULT begränsning.

1 = Sant

0 = Falskt
TableHasDeleteTrigger Tabell Tabellen har en DELETE utlösare.

1 = Sant

0 = Falskt
TableHasForeignKey Tabell Tabellen har en FOREIGN KEY begränsning.

1 = Sant

0 = Falskt
TableHasForeignRef Tabell Tabellen refereras till av en FOREIGN KEY begränsning.

1 = Sant

0 = Falskt
TableHasIdentity Tabell Tabellen har en identitetskolumn.

1 = Sant

0 = Falskt
TableHasIndex Tabell Tabellen har ett index av vilken typ som helst.

1 = Sant

0 = Falskt
TableHasInsertTrigger Tabell Objektet har en INSERT utlösare.

1 = Sant

0 = Falskt
TableHasNonclustIndex Tabell Tabellen har ett icke-grupperat index.

1 = Sant

0 = Falskt
TableHasPrimaryKey Tabell Tabellen har en primärnyckel.

1 = Sant

0 = Falskt
TableHasRowGuidCol Tabell Tabellen har en ROWGUIDCOL för en unikidentifierarkolumn .

1 = Sant

0 = Falskt
TableHasTextImage Tabell Tabellen har en text-, ntext- eller bildkolumn .

1 = Sant

0 = Falskt
TableHasTimestamp Tabell Tabellen har en tidsstämpelkolumn .

1 = Sant

0 = Falskt
TableHasUniqueCnst Tabell Tabellen har en UNIQUE begränsning.

1 = Sant

0 = Falskt
TableHasUpdateTrigger Tabell Objektet har en UPDATE utlösare.

1 = Sant

0 = Falskt
TableHasVarDecimalStorageFormat Tabell Tabellen är aktiverad för vardecimalt lagringsformat .

1 = Sant

0 = Falskt
TableInsertTrigger Tabell Tabellen har en INSERT utlösare.

>1 = ID för den första utlösaren med den angivna typen.
TableInsertTriggerCount Tabell Tabellen har det angivna antalet INSERT utlösare.

>0 = Antalet INSERT utlösare.
TableIsFake Tabell Tabellen är inte verklig. Den materialiseras internt på begäran av SQL Server Database Engine.

1 = Sant

0 = Falskt
TableIsLockedOnBulkLoad Tabell Tabellen är låst på grund av en bcp eller BULK INSERT ett jobb.

1 = Sant

0 = Falskt
TableIsMemoryOptimized Tabell gäller för: SQL Server 2014 (12.x) och senare versioner.

Tabellen är minnesoptimerad

1 = Sant

0 = Falskt

Basdatatyp: int

Mer information finns iIn-Memory OLTP-översikt och användningsscenarier.
TableIsPinned Tabell Tabellen fästs för att lagras i datacachen.

0 = Falskt

Den här funktionen stöds inte i SQL Server 2005 (9.x) och senare versioner.
TableTextInRowLimit Tabell Maximalt antal byte som tillåts för text i rad.

0 om text i radalternativet inte har angetts.
TableUpdateTrigger Tabell Tabellen har en UPDATE utlösare.

> 1 = ID för den första utlösaren med den angivna typen.
TableUpdateTriggerCount Tabell Tabellen har det angivna antalet UPDATE utlösare.

> 0 = Antalet UPDATE utlösare.
TableHasColumnSet Tabell Tabellen har en kolumnuppsättning.

0 = Falskt

1 = Sant

Mer information finns i Använda kolumnuppsättningar.
TableTemporalType Tabell gäller för: SQL Server 2016 (13.x) och senare versioner.

Anger typ av tabell.

0 = icke-temporal tabell

1 = historiktabell för systemversionstabell

2 = systemversionsbaserad tidstabell

Returtyper

int

Exceptions

Returnerar NULL vid fel eller om en anropare inte har behörighet att visa objektet.

Permissions

En användare kan bara visa metadata för skyddsbara filer som användaren äger eller som användaren har beviljats behörighet för. Det innebär att metadatautsändande, inbyggda funktioner som OBJECTPROPERTY returnerar NULL om användaren inte har någon behörighet för objektet. Mer information finns i Konfiguration av synlighet för metadata.

Anmärkningar

Databasmotorn förutsätter att object_id finns i den aktuella databaskontexten. En fråga som refererar till en object_id i en annan databas returnerar NULL eller felaktiga resultat. I följande fråga är till exempel den aktuella databaskontexten master databasen. Databasmotorn försöker returnera egenskapsvärdet för den angivna object_id i databasen i stället för den databas som anges i frågan. Frågan returnerar felaktiga resultat eftersom vyn vEmployee inte finns i master databasen.

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

OBJECTPROPERTY(view_id, 'IsIndexable') kan använda betydande datorresurser eftersom utvärdering av egenskapen IsIndexable kräver parsning av vydefinition, normalisering och partiell optimering. Även om egenskapen IsIndexable identifierar tabeller eller vyer som kan indexeras, kan det faktiska skapandet av indexet fortfarande misslyckas om vissa indexnyckelkrav inte uppfylls. Mer information finns i CREATE INDEX (Transact-SQL).

OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') returnerar värdet 1 (sant) när minst en kolumn i en tabell läggs till för indexering. Fulltextindexering blir aktiv för populationen så snart den första kolumnen har lagts till för indexering.

När en tabell skapas QUOTED IDENTIFIER lagras alternativet alltid som ON i tabellens metadata, även om alternativet är inställt OFF på när tabellen skapas. Därför OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') returnerar alltid värdet 1 (sant).

Examples

A. Kontrollera att ett objekt är en tabell

I följande exempel testas om UnitMeasure är en tabell i AdventureWorks2022 databasen.

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. Kontrollera att en skalvärdesbevärderad användardefinierad funktion är deterministisk

I följande exempel testas om den användardefinierade skalärvärdesfunktionen ufnGetProductDealerPrice, som returnerar ett pengavärde , är deterministisk.

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

Resultatuppsättningen visar att det ufnGetProductDealerPrice inte är en deterministisk funktion.

-----
0

C: Hitta de tabeller som tillhör ett specifikt schema

I följande exempel returneras alla tabeller i dbo schemat.

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

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

D: Kontrollera att ett objekt är en tabell

I följande exempel testas om dbo.DimReseller är en tabell i databasen AdventureWorksPDW2022 .

-- Uses AdventureWorks

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