Sdílet prostřednictvím


OBJECTPROPERTY (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrátí informace o objektech v oboru schématu v aktuální databázi. Seznam objektů vymezených schématem naleznete v tématu sys.objects (Transact-SQL). Tuto funkci nelze použít pro objekty, které nejsou vymezeny schématem, jako jsou triggery DDL (Data Definition Language) a oznámení událostí.

Transact-SQL konvence syntaxe

Syntaxe

OBJECTPROPERTY ( ID , property )

Arguments

ID

Výraz, který představuje ID objektu v aktuální databázi. ID je int a předpokládá se, že se jedná o objekt s oborem schématu v aktuálním kontextu databáze.

vlastnost

Výraz, který představuje informace, které mají být vráceny pro objekt určený ID. vlastnost může být jedna z následujících hodnot.

Poznámka:

Pokud není uvedeno jinak, vrátí se, NULL pokud vlastnost není platný název vlastnosti, ID není platné ID objektu, ID je nepodporovaný typ objektu pro zadanou vlastnost nebo volající nemá oprávnění k zobrazení metadat objektu.

Název vlastnosti Typ objektu Vrácený popis a hodnoty
CnstIsClustKey Omezení PRIMARY KEY omezení s clusterovaným indexem.

1 = Pravda

0 = Nepravda
CnstIsColumn Omezení CHECK, DEFAULTnebo FOREIGN KEY omezení jednoho sloupce.

1 = Pravda

0 = Nepravda
CnstIsDeleteCascade Omezení FOREIGN KEY omezení s ON DELETE CASCADE možností.

1 = Pravda

0 = Nepravda
CnstIsDisabled Omezení Zakázané omezení

1 = Pravda

0 = Nepravda
CnstIsNonclustKey Omezení PRIMARY KEY nebo UNIQUE omezení s neclusterovaným indexem.

1 = Pravda

0 = Nepravda
CnstIsNotRepl Omezení Omezení je definováno pomocí NOT FOR REPLICATION klíčových slov.

1 = Pravda

0 = Nepravda
CnstIsNotTrusted Omezení Omezení bylo povoleno bez kontroly existujících řádků; omezení proto nemusí obsahovat všechny řádky.

1 = Pravda

0 = Nepravda
CnstIsUpdateCascade Omezení FOREIGN KEY omezení s ON UPDATE CASCADE možností.

1 = Pravda

0 = Nepravda
ExecIsAfterTrigger Spouštěč AFTER spoušť.

1 = Pravda

0 = Nepravda
ExecIsAnsiNullsOn Transact-SQL funkce, Transact-SQL procedura, trigger Transact-SQL, zobrazení ANSI_NULLS Nastavení při vytváření

1 = Pravda

0 = Nepravda
ExecIsDeleteTrigger Spouštěč DELETE spoušť.

1 = Pravda

0 = Nepravda
ExecIsFirstDeleteTrigger Spouštěč První aktivace se aktivuje při DELETE spuštění proti tabulce.

1 = Pravda

0 = Nepravda
ExecIsFirstInsertTrigger Spouštěč První aktivace se aktivuje při INSERT spuštění proti tabulce.

1 = Pravda

0 = Nepravda
ExecIsFirstUpdateTrigger Spouštěč První aktivace se aktivuje při UPDATE spuštění proti tabulce.

1 = Pravda

0 = Nepravda
ExecIsInsertTrigger Spouštěč INSERT spoušť.

1 = Pravda

0 = Nepravda
ExecIsInsteadOfTrigger Spouštěč INSTEAD OF spoušť.

1 = Pravda

0 = Nepravda
ExecIsLastDeleteTrigger Spouštěč Poslední trigger se aktivuje při DELETE spuštění proti tabulce.

1 = Pravda

0 = Nepravda
ExecIsLastInsertTrigger Spouštěč Poslední trigger se aktivuje při INSERT spuštění proti tabulce.

1 = Pravda

0 = Nepravda
ExecIsLastUpdateTrigger Spouštěč Poslední trigger se aktivuje při UPDATE spuštění proti tabulce.

1 = Pravda

0 = Nepravda
ExecIsQuotedIdentOn Transact-SQL funkce, Transact-SQL procedura, trigger Transact-SQL, zobrazení QUOTED_IDENTIFIER Nastavení při vytváření

1 = Pravda

0 = Nepravda
ExecIsStartup Procedure Postup spuštění

1 = Pravda

0 = Nepravda
ExecIsTriggerDisabled Spouštěč Zakázaná aktivační událost

1 = Pravda

0 = Nepravda
ExecIsTriggerNotForRepl Spouštěč Aktivační událost definovaná jako NOT FOR REPLICATION.

1 = Pravda

0 = Nepravda
ExecIsUpdateTrigger Spouštěč UPDATE spoušť.

1 = Pravda

0 = Nepravda
ExecIsWithNativeCompilation Transact-SQL procedura platí pro: SQL Server 2014 (12.x) a novější verze.

Procedura je nativně zkompilována.

1 = Pravda

0 = Nepravda

Základní datový typ: int
HasAfterTrigger Tabulka nebo zobrazení Tabulka nebo zobrazení má AFTER aktivační událost.

1 = Pravda

0 = Nepravda
HasDeleteTrigger Tabulka nebo zobrazení Tabulka nebo zobrazení má DELETE aktivační událost.

1 = Pravda

0 = Nepravda
HasInsertTrigger Tabulka nebo zobrazení Tabulka nebo zobrazení má INSERT aktivační událost.

1 = Pravda

0 = Nepravda
HasInsteadOfTrigger Tabulka nebo zobrazení Tabulka nebo zobrazení má INSTEAD OF aktivační událost.

1 = Pravda

0 = Nepravda
HasUpdateTrigger Tabulka nebo zobrazení Tabulka nebo zobrazení má UPDATE aktivační událost.

1 = Pravda

0 = Nepravda
IsAnsiNullsOn Transact-SQL funkce, Transact-SQL procedura, tabulka, trigger Transact-SQL, zobrazení Určuje, že ANSI NULLS nastavení možnosti pro tabulku je ON. Pokud ANSI NULLS je ON, všechna porovnání s NULL hodnotou se vyhodnotí jako UNKNOWN. Toto nastavení platí pro všechny výrazy v definici tabulky, včetně počítaných sloupců a omezení, pokud tabulka existuje.

1 = Pravda

0 = Nepravda
IsCheckCnst Libovolný objekt s oborem schématu CHECK omezení.

1 = Pravda

0 = Nepravda
IsConstraint Libovolný objekt s oborem schématu Je jeden sloupec CHECK, DEFAULTnebo FOREIGN KEY omezení sloupce nebo tabulky.

1 = Pravda

0 = Nepravda
IsDefault Libovolný objekt s oborem schématu platí pro: SQL Server 2008 (10.0.x) a novější verze.

Vázaný výchozí.

1 = Pravda

0 = Nepravda
IsDefaultCnst Libovolný objekt s oborem schématu DEFAULT omezení.

1 = Pravda

0 = Nepravda
IsDeterministic Funkce nebo zobrazení Determinismus vlastnosti funkce nebo zobrazení.

1 = deterministický

0 = Ne deterministické
IsEncrypted Transact-SQL funkce, Transact-SQL procedura, tabulka, trigger Transact-SQL, zobrazení Označuje, že původní text příkazu modulu byl převeden na obfuskovaný formát. Výstup obfuskace není přímo viditelný v žádném zobrazení katalogu v SYSTÉMU SQL Server 2005 (9.x). Uživatelé bez přístupu k systémovým tabulkám nebo databázovým souborům nemohou načíst obfuskovaný text. Text je však k dispozici uživatelům, kteří mají přístup k systémovým tabulkám prostřednictvím diagnostického připojení pro správce databáze nebo přímo přistupovat k databázovým souborům. Uživatelé, kteří mohou připojit ladicí program k procesu serveru, mohou také načíst původní proceduru z paměti za běhu.

1 = zašifrováno

0 = Nezašifrováno

Základní datový typ: int
IsExecuted Libovolný objekt s oborem schématu Objekt lze spustit (zobrazení, procedura, funkce nebo aktivační událost).

1 = Pravda

0 = Nepravda
IsExtendedProc Libovolný objekt s oborem schématu Rozšířený postup.

1 = Pravda

0 = Nepravda
IsForeignKey Libovolný objekt s oborem schématu FOREIGN KEY omezení.

1 = Pravda

0 = Nepravda
IsIndexed Tabulka nebo zobrazení Tabulka nebo zobrazení s indexem

1 = Pravda

0 = Nepravda
IsIndexable Tabulka nebo zobrazení Tabulka nebo zobrazení, pro které lze vytvořit index.

1 = Pravda

0 = Nepravda
IsInlineFunction Funkce Vložená funkce.

1 = vložená funkce

0 = Ne vložená funkce
IsMSShipped Libovolný objekt s oborem schématu Objekt vytvořený během instalace SQL Serveru

1 = Pravda

0 = Nepravda
IsPrimaryKey Libovolný objekt s oborem schématu PRIMARY KEY omezení.

1 = Pravda

0 = Nepravda

NULL = Není funkce nebo ID objektu není platné.
IsProcedure Libovolný objekt s oborem schématu Procedura.

1 = Pravda

0 = Nepravda
IsQuotedIdentOn Transact-SQL funkce, Transact-SQL procedura, tabulka, trigger Transact-SQL, zobrazení, CHECK omezení, DEFAULT definice Určuje, že nastavení uvozovaného identifikátoru pro objekt je ON. To znamená, že dvojité uvozovky označují identifikátory ve všech výrazech zahrnutých v definici objektu.

1 = ON

0 = OFF
IsQueue Libovolný objekt s oborem schématu Fronta služby Service Broker

1 = Pravda

0 = Nepravda
IsReplProc Libovolný objekt s oborem schématu Postup replikace

1 = Pravda

0 = Nepravda
IsRule Libovolný objekt s oborem schématu Vázané pravidlo.

1 = Pravda

0 = Nepravda
IsScalarFunction Funkce Skalární funkce.

1 = skalární funkce s hodnotou

0 = Ne skalární-hodnotad funkce
IsSchemaBound Funkce nebo zobrazení Funkce vázané na schéma nebo zobrazení vytvořené pomocí SCHEMABINDING.

1 = vázané na schéma

0 = Není svázané se schématem.
IsSystemTable Table Systémová tabulka.

1 = Pravda

0 = Nepravda
IsSystemVerified Object SQL Server může ověřit determinismus a vlastnosti přesnosti objektu.

1 = Pravda

0 = Nepravda
IsTable Table Stůl.

1 = Pravda

0 = Nepravda
IsTableFunction Funkce Tabulková funkce.

1 = Funkce s hodnotou tabulky

0 = Nehodnocená funkce tabulky
IsTrigger Libovolný objekt s oborem schématu Spoušť.

1 = Pravda

0 = Nepravda
IsUniqueCnst Libovolný objekt s oborem schématu UNIQUE omezení.

1 = Pravda

0 = Nepravda
IsUserTable Table Uživatelem definovaná tabulka

1 = Pravda

0 = Nepravda
IsView Zobrazit Pohled.

1 = Pravda

0 = Nepravda
OwnerId Libovolný objekt s oborem schématu Vlastník objektu.

Poznámka: Vlastník schématu nemusí nutně být vlastníkem objektu. Například podřízené objekty (ty, kde parent_object_id není null) vždy vrátí stejné ID vlastníka jako nadřazený objekt.

Non-null = ID uživatele databáze vlastníka objektu.
SchemaId Libovolný objekt s oborem schématu ID schématu schématu, do kterého objekt patří.
TableDeleteTrigger Table Tabulka má DELETE aktivační událost.

>1 = ID prvního triggeru se zadaným typem.
TableDeleteTriggerCount Table Tabulka obsahuje zadaný počet aktivačních DELETE událostí.

>0 = počet aktivačních DELETE událostí.
TableFullTextMergeStatus Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Určuje, jestli tabulka s fulltextovým indexem, který se právě slučuje.

0 = Tabulka nemá fulltextový index nebo fulltextový index není v sloučení.

1 = Fulltextový index se slučuje.
TableFullTextBackgroundUpdateIndexOn Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Tabulka má povolený fulltextový index aktualizace na pozadí (automatické sledování).

1 = PRAVDA

0 = NEPRAVDA
TableFulltextCatalogId Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

ID fulltextového katalogu, ve kterém se nacházejí data fulltextového indexu tabulky.

Nenulové = ID fulltextového katalogu přidružené k jedinečnému indexu, který identifikuje řádky v fulltextové indexované tabulce.

0 = Tabulka nemá fulltextový index.
TableFulltextChangeTrackingOn Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Tabulka obsahuje povolené fulltextové sledování změn.

1 = PRAVDA

0 = NEPRAVDA
TableFulltextDocsProcessed Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Počet řádků zpracovaných od začátku indexování fulltextu V tabulce, která se indexuje pro fulltextové vyhledávání, se všechny sloupce jednoho řádku považují za součást jednoho dokumentu, který se má indexovat.

0 = Není dokončeno žádné aktivní procházení nebo indexování fulltextu.

> 0 = Jeden z následujících (A nebo B): A) Počet dokumentů zpracovaných operacemi vložení nebo aktualizace od začátku úplného, přírůstkového nebo ručního sledování změn základního souboru. B) Počet řádků zpracovaných operacemi vložení nebo aktualizace, protože bylo povoleno sledování změn s počtem indexů aktualizací na pozadí, změněno schéma fulltextového indexu, znovu sestavený fulltextový katalog nebo instance SQL Serveru restartována.

NULL = Tabulka nemá fulltextový index.

Tato vlastnost nemonitoruje ani nepočítá odstraněné řádky.
TableFulltextFailCount Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Počet řádků Full-Text Hledání se neindexoval.

0 = Počet dokončených obyvatel.

> 0 = Jeden z následujících (A nebo B): A) Počet dokumentů, které nebyly indexovány od začátku úplné, přírůstkové a ruční aktualizace sledování populace. B) Pro sledování změn s indexem aktualizace na pozadí počet řádků, které nebyly indexovány od začátku základního souboru nebo restartování populace. Příčinou může být změna schématu, opětovné sestavení katalogu, restartování serveru atd.

NULL = Tabulka nemá fulltextový index.
TableFulltextItemCount Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Počet řádků, které byly úspěšně indexovány fulltextem
TableFulltextKeyColumn Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

ID sloupce přidruženého k jedinečnému indexu s jedním sloupcem, který se účastní definice fulltextového indexu.

0 = Tabulka nemá fulltextový index.
TableFulltextPendingChanges Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Počet čekajících položek sledování změn, které se mají zpracovat.

0 = sledování změn není povoleno.

NULL = Tabulka nemá fulltextový index.
TableFulltextPopulateStatus Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

0 = nečinné.

1 = Probíhá celá populace.

2 = probíhá přírůstková populace.

3 = Šíření sledovaných změn probíhá.

4 = probíhá index aktualizace na pozadí, například automatické sledování.

5 = Indexování fulltextu je omezené nebo pozastavené.
TableHasActiveFulltextIndex Table platí pro: SQL Server 2008 (10.0.x) a novější verze.

Tabulka má aktivní fulltextový index.

1 = Pravda

0 = Nepravda
TableHasCheckCnst Table Tabulka má CHECK omezení.

1 = Pravda

0 = Nepravda
TableHasClustIndex Table Tabulka má clusterovaný index.

1 = Pravda

0 = Nepravda
TableHasDefaultCnst Table Tabulka má DEFAULT omezení.

1 = Pravda

0 = Nepravda
TableHasDeleteTrigger Table Tabulka má DELETE aktivační událost.

1 = Pravda

0 = Nepravda
TableHasForeignKey Table Tabulka má FOREIGN KEY omezení.

1 = Pravda

0 = Nepravda
TableHasForeignRef Table Na tabulku odkazuje FOREIGN KEY omezení.

1 = Pravda

0 = Nepravda
TableHasIdentity Table Tabulka obsahuje sloupec identity.

1 = Pravda

0 = Nepravda
TableHasIndex Table Tabulka má index libovolného typu.

1 = Pravda

0 = Nepravda
TableHasInsertTrigger Table Objekt má INSERT aktivační událost.

1 = Pravda

0 = Nepravda
TableHasNonclustIndex Table Tabulka má neclusterovaný index.

1 = Pravda

0 = Nepravda
TableHasPrimaryKey Table Tabulka má primární klíč.

1 = Pravda

0 = Nepravda
TableHasRowGuidCol Table Tabulka obsahuje ROWGUIDCOL sloupec uniqueidentifier .

1 = Pravda

0 = Nepravda
TableHasTextImage Table Tabulka obsahuje text, ntext nebo sloupec obrázku .

1 = Pravda

0 = Nepravda
TableHasTimestamp Table Tabulka obsahuje sloupec časového razítka .

1 = Pravda

0 = Nepravda
TableHasUniqueCnst Table Tabulka má UNIQUE omezení.

1 = Pravda

0 = Nepravda
TableHasUpdateTrigger Table Objekt má UPDATE aktivační událost.

1 = Pravda

0 = Nepravda
TableHasVarDecimalStorageFormat Table Pro formát vardecimal storage je povolená tabulka.

1 = Pravda

0 = Nepravda
TableInsertTrigger Table Tabulka obsahuje INSERT aktivační událost.

>1 = ID prvního triggeru se zadaným typem.
TableInsertTriggerCount Table Tabulka obsahuje zadaný počet aktivačních INSERT událostí.

>0 = počet aktivačních INSERT událostí.
TableIsFake Table Tabulka není skutečná. Je materializován interně na vyžádání databázovým strojem SQL Serveru.

1 = Pravda

0 = Nepravda
TableIsLockedOnBulkLoad Table Tabulka je uzamčená kvůli bcp nebo BULK INSERT úloze.

1 = Pravda

0 = Nepravda
TableIsMemoryOptimized Table platí pro: SQL Server 2014 (12.x) a novější verze.

Tabulka je optimalizovaná pro paměť.

1 = Pravda

0 = Nepravda

Základní datový typ: int

Další informace najdete v tématu In-Memory přehled a scénáře použití OLTP.
TableIsPinned Table Tabulka se připne, aby byla uložena v mezipaměti dat.

0 = Nepravda

Tato funkce není podporována v SQL Serveru 2005 (9.x) a novějších verzích.
TableTextInRowLimit Table Maximální počet bajtů povolený pro text v řádku

0, pokud není nastavená možnost textu v řádku.
TableUpdateTrigger Table Tabulka obsahuje UPDATE aktivační událost.

> 1 = ID prvního triggeru se zadaným typem.
TableUpdateTriggerCount Table Tabulka obsahuje zadaný počet aktivačních UPDATE událostí.

> 0 = počet aktivačních UPDATE událostí.
TableHasColumnSet Table Tabulka obsahuje sadu sloupců.

0 = Nepravda

1 = Pravda

Další informace najdete v tématu Použití sad sloupců.
TableTemporalType Table Platí pro: SQL Server 2016 (13.x) a novější verze.

Určuje typ tabulky.

0 = dočasná tabulka

1 = tabulka historie pro tabulku se systémovou verzí

2 = dočasná tabulka se systémovou verzí

Návratové typy

int

Exceptions

Vrátí NULL chybu nebo pokud volající nemá oprávnění k zobrazení objektu.

Povolení

Uživatel může zobrazit pouze metadata zabezpečitelných, která uživatel vlastní nebo na kterých má uživatel udělená oprávnění. To znamená, že předdefinované funkce, jako OBJECTPROPERTY je například vrácení NULL metadat, pokud uživatel nemá k objektu žádná oprávnění. Další informace naleznete v tématu Konfigurace viditelnosti metadat.

Poznámky

Databázový stroj předpokládá, že object_id je v aktuálním kontextu databáze. Dotaz, který odkazuje na object_id v jiné databázi, vrátí NULL nebo nesprávné výsledky. Například v následujícím dotazu je master aktuální kontext databáze databáze. Databázový stroj se pokusí vrátit hodnotu vlastnosti pro zadanou object_id v této databázi místo databáze zadané v dotazu. Dotaz vrátí nesprávné výsledky, protože zobrazení vEmployee není v master databázi.

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

OBJECTPROPERTY(view_id, 'IsIndexable') může využívat významné počítačové prostředky, protože vyhodnocení IsIndexable vlastnost vyžaduje analýzu definice zobrazení, normalizace a částečné optimalizace. I když IsIndexable vlastnost identifikuje tabulky nebo zobrazení, které lze indexovat, skutečné vytvoření indexu stále může selhat, pokud nejsou splněny určité požadavky na klíč indexu. Další informace naleznete v tématu CREATE INDEX (Transact-SQL).

OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') vrátí hodnotu 1 (true), pokud je pro indexování přidán alespoň jeden sloupec tabulky. Fulltextové indexování se stane aktivní pro populaci, jakmile se přidá první sloupec pro indexování.

Při vytvoření QUOTED IDENTIFIER tabulky se tato možnost vždy uloží jako ON v metadatech tabulky, i když je tato možnost nastavená na OFF při vytváření tabulky. OBJECTPROPERTY(table_id, 'IsQuotedIdentOn') Proto vždy vrátí hodnotu 1 (true).

Examples

A. Ověření, že je objekt tabulkou

Následující příklad testuje, zda UnitMeasure je tabulka v AdventureWorks2025 databázi.

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. Ověřte, že skalární funkce definovaná uživatelem je deterministická.

Následující příklad testuje, zda uživatelem definovaná skalární hodnota funkce ufnGetProductDealerPrice, která vrací peněžní hodnotu, je deterministický.

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

Sada výsledků ukazuje, že ufnGetProductDealerPrice není deterministická funkce.

-----
0

C: Vyhledání tabulek, které patří do určitého schématu

Následující příklad vrátí všechny tabulky ve schématu dbo .

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

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

D: Ověření, že objekt je tabulka

Následující příklad testuje, zda dbo.DimReseller je tabulka v databázi 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