Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-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 = ON0 = 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