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.
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.
NotŞ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önerNonnull = 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.
NotBu ö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