Aracılığıyla paylaş


objectproperty (Transact-SQL)

Geçerli veritabanında şema kapsamlı nesneler hakkında bilgi verir.Şema kapsamlı nesne listesi için bkz: sys.Objects (Transact-SQL).Bu işlev , şema veri tanımı dili (DDL) Tetikleyicileri ve olay bildirimleri gibi kapsamlı, olmayan nesneler için kullanılamaz.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

OBJECTPROPERTY ( id , property ) 

Bağımsız değişkenler

  • id
    Geçerli veritabanında nesne Kimliğini temsil eden bir ifade olur.idİş int ve kabul edilir olmasına bir şema kapsamlı nesne geçerli veritabanı bağlamı.

  • property
    Belirtilen nesne için döndürülecek bilgi temsil eden bir ifade id.propertyAşağıdaki değerlerden biri olabilir.

    Not

    Aksi belirtilmedikçe null olduğunda döndürülen property bir geçerli özellik adı id olan bir geçerli nesne kimliği id bir desteklenmeyen nesne türü için belirtilen property, veya arayan nesnenin meta verilergörüntüleme iznine sahip değil.

    Özellik adı

    Nesne türü

    Açıklama ve döndürülen değerler

    CnstIsClustKey

    Kısıtlama

    kümelenmiş dizinPRIMARY key kısıtlaması.

    1 = True

    0 = False

    CnstIsColumn

    Kısıtlama

    Tek bir sütunonay, default veya FOREIGN key kısıtlaması.

    1 = True

    0 = False

    CnstIsDeleteCascade

    Kısıtlama

    on delete cascade seçeneği ile FOREIGN key kısıtlaması.

    1 = True

    0 = False

    CnstIsDisabled

    Kısıtlama

    Kısıtlamayı devre dışı bırakılmış.

    1 = True

    0 = False

    CnstIsNonclustKey

    Kısıtlama

    kümelenmemiş dizinbirincil anahtar veya benzersiz kısıtlama.

    1 = True

    0 = False

    CnstIsNotRepl

    Kısıtlama

    Kısıtlaması not for REPLICATION anahtar sözcükler kullanılarak tanımlanır.

    1 = True

    0 = False

    CnstIsNotTrusted

    Kısıtlama

    Varolan satırları denetlemeden kısıtlaması etkin; Bu nedenle, tüm satırlar için kısıtlamayı tutamayabilir.

    1 = True

    0 = False

    CnstIsUpdateCascade

    Kısıtlama

    on update cascade seçeneği ile FOREIGN key kısıtlaması.

    1 = True

    0 = False

    ExecIsAfterTrigger

    Tetikleyici

    SONRA tetikleyici.

    1 = True

    0 = False

    ExecIsAnsiNullsOn

    Transact-SQL işlev, Transact-SQL yordamı, Transact-SQL Tetikleyici, görünümü

    Oluşturma saatANSI_NULLS ayarı.

    1 = True

    0 = False

    ExecIsDeleteTrigger

    Tetikleyici

    Tetikleyiciyi SİLİN.

    1 = True

    0 = False

    ExecIsFirstDeleteTrigger

    Tetikleyici

    İlk tetikleyici tablokarşı bir delete yürütüldüğünde harekete geçirildi.

    1 = True

    0 = False

    ExecIsFirstInsertTrigger

    Tetikleyici

    İlk tetikleyici INSERT karşı tabloyürütüldüğünde harekete geçirildi.

    1 = True

    0 = False

    ExecIsFirstUpdateTrigger

    Tetikleyici

    İlk tetikleyici tablokarşı bir update yürütüldüğünde harekete geçirildi.

    1 = True

    0 = False

    ExecIsInsertTrigger

    Tetikleyici

    TETİĞİ.

    1 = True

    0 = False

    ExecIsInsteadOfTrigger

    Tetikleyici

    INSTEAD of tetikleyicisi.

    1 = True

    0 = False

    ExecIsLastDeleteTrigger

    Tetikleyici

    Son tetikleyici tablokarşı bir delete yürütüldüğünde harekete geçirildi.

    1 = True

    0 = False

    ExecIsLastInsertTrigger

    Tetikleyici

    Son tetikleyici INSERT karşı tabloyürütüldüğünde harekete geçirildi.

    1 = True

    0 = False

    ExecIsLastUpdateTrigger

    Tetikleyici

    Son tetikleyici tablokarşı bir update yürütüldüğünde harekete geçirildi.

    1 = True

    0 = False

    ExecIsQuotedIdentOn

    Transact-SQL işlev, Transact-SQL yordamı, Transact-SQL Tetikleyici, görünümü

    Oluşturma saatQUOTED_IDENTIFIER ayarı.

    1 = True

    0 = False

    ExecIsStartup

    Yordam

    Başlatma yordamı.

    1 = True

    0 = False

    ExecIsTriggerDisabled

    Tetikleyici

    Tetikleyici devre dışı.

    1 = True

    0 = False

    ExecIsTriggerNotForRepl

    Tetikleyici

    Tetikleyici not for REPLICATION tanımlanmış.

    1 = True

    0 = False

    ExecIsUpdateTrigger

    Tetikleyici

    Güncelleştirme tetikleyici.

    1 = True

    0 = False

    HasAfterTrigger

    Tablo, Görünüm

    Tablo veya Görünüm after tetikleyicisi yok.

    1 = True

    0 = False

    HasDeleteTrigger

    Tablo, Görünüm

    Tablo veya Görünüm delete tetikleyici vardır.

    1 = True

    0 = False

    HasInsertTrigger

    Tablo, Görünüm

    Tablo veya görünüm bir INSERT tetikleyici vardır.

    1 = True

    0 = False

    HasInsteadOfTrigger

    Tablo, Görünüm

    Tablo veya görünüm bir INSTEAD of tetikleyicisi yok.

    1 = True

    0 = False

    HasUpdateTrigger

    Tablo, Görünüm

    Tablo veya Görünüm update tetikleyici vardır.

    1 = True

    0 = False

    IsAnsiNullsOn

    Transact-SQL işlev, Transact-SQL yordamı, tablo, Transact-SQL Tetikleyici, görünümü

    tablo için ANSI nulls seçeneği ayarı açık olduğunu belirtir.Bu, null bir değere karşı tüm karşılaştırmalar için bilinmeyen değerlendirmek anlamına gelir.Bu ayar tablo mevcut olduğu sürece için hesaplanan sütunlar ve kısıtlamalarıyla birlikte tablo tanımlamasını tüm ifadelerinde uygulanır.

    1 = True

    0 = False

    IsCheckCnst

    Herhangi bir şema kapsamlı nesne

    Denetim kısıtlaması.

    1 = True

    0 = False

    IsConstraint

    Herhangi bir şema kapsamlı nesne

    Tek sütun onay, default veya FOREIGN key kısıtlaması sütun veya tabloolur.

    1 = True

    0 = False

    IsDefault

    Herhangi bir şema kapsamlı nesne

    Varsayılan bağlı.

    1 = True

    0 = False

    IsDefaultCnst

    Herhangi bir şema kapsamlı nesne

    VARSAYILAN kısıtlama.

    1 = True

    0 = False

    IsDeterministic

    İşlevi, görüntüle

    işlev veya görünümü determinism özellik .

    1 = Deterministic

    0 = Deterministic değil

    IsEncrypted

    Transact-SQL işlev, Transact-SQL yordamı, tablo, Transact-SQL Tetikleyici, görünümü

    Özgün metin modülü deyim bir obfuscated biçimine dönüştürülmüş gösterir.Gizleme hile şaka çıktısını doğrudan katalog görünümleri hiçbirinde görülmez SQL Server 2005.sistem tabloları veya veritabanı dosyalarına erişimi olmayan kullanıcılar obfuscated metni alınamıyor.Bununla birlikte, metin üzerinden ya da erişim sistem tabloları için kullanıcılar için kullanılabilir DAC bağlantı noktası veya veritabanı dosyalarını doğrudan erişim.Ayrıca, sunucu işleme bir hata ayıklayıcı ekleyebileceğini kullanıcılar özgün yordamı bellekten çalıştırma saatalabilir.

    1 = Şifreli

    0 = Şifreli değil

    Temel veri türü: int

    IsExecuted

    Herhangi bir şema kapsamlı nesne

    Nesne çalıştırılabilir (Görünüm, yordam, işlevveya tetikleyici).

    1 = True

    0 = False

    IsExtendedProc

    Herhangi bir şema kapsamlı nesne

    Genişletilmiş yordam.

    1 = True

    0 = False

    IsForeignKey

    Herhangi bir şema kapsamlı nesne

    YABANCI anahtar kısıtlaması.

    1 = True

    0 = False

    IsIndexed

    Tablo, Görünüm

    Tablo veya Görünüm dizin sahip.

    1 = True

    0 = False

    IsIndexable

    Tablo, Görünüm

    Tablo veya Görünüm dizin oluşturulabilir.

    1 = True

    0 = False

    IsInlineFunction

    İşlev

    Satır içi işlev.

    1 = Satır içi işlev

    0 = Satır içi işlevdeğil

    IsMSShipped

    Herhangi bir şema kapsamlı nesne

    Yükleme işlemi sırasında oluşturulan nesne SQL Server.

    1 = True

    0 = False

    IsPrimaryKey

    Herhangi bir şema kapsamlı nesne

    PRIMARY key kısıtlaması.

    1 = True

    0 = False

    null olmayan bir işlev= ya da nesne kimliği geçerli değil.

    IsProcedure

    Herhangi bir şema kapsamlı nesne

    Yordam.

    1 = True

    0 = False

    IsQuotedIdentOn

    Transact-SQL işlev, Transact-SQL yordamı, tablo, Transact-SQL Tetikleyici, görünüm, denetim kısıtlamasını, varsayılan tanımını

    Nesne için tırnak işaretli tanımlayıcı ayarı açık olduğunu belirtir.Bu çift tırnak tanımlayıcıları tüm ifadelerde nesnesi tanımında katılan sınırlandırmak anlamına gelir.

    1 = ON

    0 = KAPALI

    IsQueue

    Herhangi bir şema kapsamlı nesne

    Hizmet Aracısı Sıra

    1 = True

    0 = False

    IsReplProc

    Herhangi bir şema kapsamlı nesne

    Çoğaltma yordam.

    1 = True

    0 = False

    IsRule

    Herhangi bir şema kapsamlı nesne

    İlişkili kuralı.

    1 = True

    0 = False

    IsScalarFunction

    İşlev

    Skalar değerli işlev.

    1 = Skalar değerli işlev

    0 = Değil skaler-değerli işlev

    IsSchemaBound

    İşlevi, görüntüle

    Bir şema işlev veya ema BALAMA kullanılarak oluşturulmuş görünümü bağlı.

    1 = Şemaya bağlı

    0 = Şemaya bağlı değil.

    IsSystemTable

    Tablo

    Sistem tablo.

    1 = True

    0 = False

    IsTable

    Tablo

    Tablo.

    1 = True

    0 = False

    IsTableFunction

    İşlev

    Tablo değerli işlev.

    1 = Tablo değerli işlev

    0 = tablo-değerli işlev

    IsTrigger

    Herhangi bir şema kapsamlı nesne

    Tetikleyici.

    1 = True

    0 = False

    IsUniqueCnst

    Herhangi bir şema kapsamlı nesne

    BENZERSİZ kısıtlama.

    1 = True

    0 = False

    IsUserTable

    Tablo

    Kullanıcı tanımlı tablo.

    1 = True

    0 = False

    IsView

    Görünüm

    Görünüm.

    1 = True

    0 = False

    OwnerId

    Herhangi bir şema kapsamlı nesne

    Nesnenin sahibi.

    NotNot
    Şema sahibi mutlaka nesne sahibi değil.Örneğin, alt nesneler (Bu nereye parent_object_id geçirecektir olan) her zaman aynı sahip kimliği olarak üst. döner

    Nonnull = nesne sahibi veritabanı kullanıcı kimliği.

    TableDeleteTrigger

    Tablo

    Tablo delete tetikleyici vardır.

    >1 = Belirtilen tür ile ilk tetikleyici kimliği.

    TableDeleteTriggerCount

    Tablo

    Tablo delete Tetikleyiciler belirtilen sayıda sahiptir.

    >0 = delete Tetikleyiciler sayısı.

    TableFullTextMergeStatus

    Tablo

    Bir tablo , şu anda birleştiriliyor içinde olan bir tam metin dizini olup olmadığı.

    0 = Tablo tam metin dizinine sahip değil ya da tam metin dizini içinde birleştirme değil.

    1 = Tam metin dizin birleştirme.

    TableFullTextBackgroundUpdateIndexOn

    Tablo

    Tablo tam metin arka plan etkin dizini (autochange izleme) güncelleştirme sahiptir.

    1 = TRUE

    0 = FALSE

    TableFulltextCatalogId

    Tablo

    tablo için tam metin dizin verileri bulunduğu tam metin kataloğu kimliği.

    Sıfır olmayan = tam metin dizini oluşturulmuş tablosatırları tanımlayan benzersiz dizin ile ilişkili tam metin kataloğu kimliği.

    0 = Tablo tam metin dizinine sahip değil.

    TableFulltextChangeTrackingOn

    Tablo

    Tablo tam metin değişiklik etkin izleme sahiptir.

    1 = TRUE

    0 = FALSE

    TableFulltextDocsProcessed

    Tablo

    Tam metin dizinlemesi başladığından bu yana işlenen satır sayısı.tam metin aramasıiçin dizinlenmiş bir tablo , bir satır bütün sütunları sıralanacak bir belgenin bir parçası değerlendirilir.

    0 = Yok etkin gezinme veya tam metin dizin oluşturma tamamlandı.

    >0 = Aşağıdakilerden biri:

    • Tarafından işlenen belge sayısı Ekle veya başlangıç itibaren işlemlerinin tam, artımlı veya el ile değişiklik popülasyonizleme güncelleştirin.

    • Ekleme veya değişiklik ile arka plan güncelleştirme dizini popülasyon izleme etkinleştirildikten sonra güncelleştirme işlemlerini, tam metin dizini şema değiştirildi, yeniden tam metin kataloğu veya örnek tarafından işlenen satır sayısı SQL Server yeniden ve benzeri.

    null = tablo tam metin dizinine sahip değil.

    NotNot
    Bu özellik olmadığından izlemek veya silinmiş satırları sayma.

    TableFulltextFailCount

    Tablo

    Tam metin arama dizin değil satır sayısı.

    0 = popülasyon tamamlandı.

    >0 = Aşağıdakilerden biri:

    • Tam, artımlı ve el ile güncelleştirme değişiklik izleme popülasyonbaşlangıç itibaren dizinli değil belge sayısı.

    • Değişiklik izleme ile arka plan için popülasyonbaşlangıcı veya popülasyonyeniden dizine değil satır dizini güncelleştirin.Bunun nedeni olabilir bir şema değişikliğinin, katalog, sunucunun yeniden başlatılması ve benzeri rebuild.

    null = tablo tam metin dizinine sahip değil.

    TableFulltextItemCount

    Tablo

    Dizin başarıyla tam metin satır sayısı.

    TableFulltextKeyColumn

    Tablo

    Tam metin dizini tanımında katılan teksütunbenzersiz dizin ile ilişkili sütun kimliği.

    0 = Tablo tam metin dizinine sahip değil.

    TableFulltextPendingChanges

    Tablo

    Değişiklik izleme girişlerini işlemek için bekleyen sayısı.

    0 = değişiklik izleme etkin değil.

    null = tablo tam metin dizinine sahip değil.

    TableFulltextPopulateStatus

    Tablo

    0 = Boşta.

    1 = Tam popülasyon ise sürüyor.

    2 = Artımlı popülasyon ise sürüyor.

    3 = İzlenen değişiklikler yayılmasını ise sürüyor.

    4 = Arka plan autochange izleme gibi devam eden güncelleştirme dizin numarasıdır.

    5 = Tam metin dizin oluşturma bastırma veya duraklatıldı.

    TableHasActiveFulltextIndex

    Tablo

    Etkin tam metin dizin tablo vardır.

    1 = True

    0 = False

    TableHasCheckCnst

    Tablo

    Tablo bir denetim kısıtlaması vardır.

    1 = True

    0 = False

    TableHasClustIndex

    Tablo

    Tablo kümelenmiş dizinvardır.

    1 = True

    0 = False

    TableHasDefaultCnst

    Tablo

    Tablo, varsayılan kısıtlama vardır.

    1 = True

    0 = False

    TableHasDeleteTrigger

    Tablo

    Tablo delete tetikleyici vardır.

    1 = True

    0 = False

    TableHasForeignKey

    Tablo

    Tabloda bir yabancı anahtar kısıtlamasına sahiptir.

    1 = True

    0 = False

    TableHasForeignRef

    Tablo

    Tablo FOREIGN key kısıtlaması tarafından başvurulan.

    1 = True

    0 = False

    TableHasIdentity

    Tablo

    Tablonun kimlik sütunvardır.

    1 = True

    0 = False

    TableHasIndex

    Tablo

    Bir dizin herhangi bir tür tablo vardır.

    1 = True

    0 = False

    TableHasInsertTrigger

    Tablo

    Nesnenin bir INSERT tetikleyici vardır.

    1 = True

    0 = False

    TableHasNonclustIndex

    Tablo

    Tablo kümelenmemiş dizinvardır.

    1 = True

    0 = False

    TableHasPrimaryKey

    Tablo

    Tablonun birincil anahtarvardır.

    1 = True

    0 = False

    TableHasRowGuidCol

    Tablo

    Tablo için bir ROWGUIDCOL sahip bir uniqueidentifier sütun.

    1 = True

    0 = False

    TableHasTextImage

    Tablo

    Table has a text, ntext, or image sütun.

    1 = True

    0 = False

    TableHasTimestamp

    Tablo

    Tablo olan bir timestamp sütun.

    1 = True

    0 = False

    TableHasUniqueCnst

    Tablo

    Tablonun benzersiz kısıtlamaya sahip.

    1 = True

    0 = False

    TableHasUpdateTrigger

    Tablo

    Nesne update tetikleyici vardır.

    1 = True

    0 = False

    TableHasVarDecimalStorageFormat

    Tablo

    Tablo için etkin vardecimal depolama biçimi.

    1 = True

    0 = False

    TableInsertTrigger

    Tablo

    Tablo INSERT tetikleyici vardır.

    >1 = Belirtilen tür ile ilk tetikleyici kimliği.

    TableInsertTriggerCount

    Tablo

    INSERT Tetikleyiciler belirtilen sayıda tablo vardır.

    >0 = INSERT Tetikleyiciler sayısı.

    TableIsFake

    Tablo

    Tablo gerçek değil.Bu dahili isteğe bağlı materialized SQL Server Veritabanı Altyapısı.

    1 = True

    0 = False

    TableIsLockedOnBulkLoad

    Tablo

    Tablo nedeniyle kilitlenmiş bir bcp veya işbulk INSERT.

    1 = True

    0 = False

    TableIsPinned

    Tablo

    Tablo, veri önbellekte tutulacağı sabitlenmiştir.

    0 = False

    Bu özellik desteklenmiyor SQL Server 2005 ve sonrası.

    TableTextInRowLimit

    Tablo

    İzin verilen en fazla bayt sayısı text in row.

    0 if text in row seçenek değildir küme.

    TableUpdateTrigger

    Tablo

    Tablo update tetikleyici vardır.

    >1 = Belirtilen tür ile ilk tetikleyici kimliği.

    TableUpdateTriggerCount

    Tablo

    tablo update Tetikleyiciler belirtilen sayıda sahiptir.

    >0 = update Tetikleyiciler sayısı.

    TableHasColumnSet

    Tablo

    Tabloya bir sütun kümevardır.

    0 = False

    1 = True

    Daha fazla bilgi için, bkz. Sütun kümelerini kullanma.

Dönüş Türleri

int

Kural dışı durumlar

Hata null veya arayan bir nesneyi görüntüleme iznine sahip olmadığında verir.

Bir kullanıcı yalnızca, kullanıcının sahip olduğu veya kullanıcı izni verildi güvenli hale Getirilebilenler meta veriler görüntüleyebilirsiniz.Yani o meta veriler-yayma, yerleşik işlevler gibi objectproperty kullanıcı nesnesinde herhangi bir izni yoksa null döndürebilir.Daha fazla bilgi için, bkz. Meta veri görünürlük yapılandırma ve Meta veri görünürlük sorun giderme.

Açıklamalar

Veritabanı Altyapısı Varsayar, object_id olan geçerli veritabanı bağlamı.Başvuran bir sorgu bir object_id başka bir veritabanında boş veya yanlış sonuçlarverir.Örneğin, aşağıdaki sorguda var olan veritabanı içeriği olan master veritabanı.Veritabanı Altyapısı İçin belirtilen özellik değeri döndürmek çalışır object_id veritabanı yerine, veritabanındaki belirtilen sorgu.Sorgu yanlış sonuçlar verir, çünkü görünümü vEmployee de değil master veritabanı.

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

objectproperty (view_id, 'isindexable') tüketmek önemli bilgisayar kaynakları için değerlendirme, IsIndexable özellik gerektiriyor view definition, normalleştirme ve kısmi iyileştirme ayrıştırma.Ancak IsIndexable özellik tanımlar tabloları veya görünümler dizine alınabilir, belirli dizin anahtar gereksinimlerin gerçek dizin oluşturulmasını yine başarısız olabilir.Daha fazla bilgi için, bkz. CREATE INDEX (Transact-SQL).

Dizin oluşturma için bir tablo en az bir sütun eklendiğinde objectproperty (table_id, 'tablehasactivefulltextindex') 1 (doğru) değerini döndürür.Dizin oluşturma için ilk sütun eklenir gibi tam metin dizinlemeyi popülasyon için etkin duruma gelir.

Bir tablo oluşturduğunuzda, tablo oluşturulduğunda seçeneği off için küme olsa bile, tırnak içine alınmış TANIMLAYICI seçeneği her zaman on meta veriler tabloverilerinde depolanır.Bu nedenle, objectproperty (table_id, 'isquotedidenton') her zaman 1 (doğru) değerini döndürür.

Örnekler

A.Nesne bir tabloolduğunu doğrulama

Aşağıdaki örnek sınamaları olup olmadığını UnitMeasure bir tablo içinde AdventureWorks2008R2 veritabanı.

USE AdventureWorks2008R2;
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.Doğrulama bir skaler-değerli kullanıcı tanımlı işlev deterministic

Aşağıdaki örnek sınamaları olup olmadığını kullanıcı tanımlı skaler-değerli işlev ufnGetProductDealerPrice, hangi verir bir money değer, deterministic.

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

sonuç kümesi gösteren ufnGetProductDealerPrice deterministic işlevdeğil.

-----

0

C.Belirli bir şemaya ait olan nesneleri bulma

Aşağıdaki örnek SchemaId özellik şemaya ait tüm nesneler dönmek Production.

USE AdventureWorks2008R2;
GO
SELECT name, object_id, type_desc
FROM sys.objects 
WHERE OBJECTPROPERTY(object_id, N'SchemaId') = SCHEMA_ID(N'Production')
ORDER BY type_desc, name;
GO