SqlFunctionAttribute.IsDeterministic Özellik

Tanım

Kullanıcı tanımlı işlevin belirlenici olup olmadığını gösterir.

public:
 property bool IsDeterministic { bool get(); void set(bool value); };
public bool IsDeterministic { get; set; }
member this.IsDeterministic : bool with get, set
Public Property IsDeterministic As Boolean

Özellik Değeri

true işlevi belirleyici ise; aksi takdirde false.

Açıklamalar

Kullanıcı tanımlı bir işlevin, her zaman aynı giriş değerleri ve aynı veritabanı durumu verildiğinde aynı çıkış değerlerini üretmesi durumunda belirleyici olduğu söylenir.

IsDeterministic özelliği, işlevin sonucunun dizinlenmiş hesaplanan sütunlar ve dizinlenmiş görünümler biçiminde dizinlenmesi için de yararlıdır. Bu özellik belirtilmezse, işlevin belirleyici olmadığı varsayılır.

Yerel verilere erişen işlevler belirlenebilir. Veri erişim özelliği ve SystemDataAccess özellikleri tarafından DataAccess ayrı olarak yakalanır.

Uzak sunuculara veri erişiminin (örneğin, başka bir SqlConnection SQL Server örneğine bağlanmak için kullanma) kullanıcı tanımlı işlevlerde kullanılabilir olduğunu unutmayın. Ancak, bildirimi yine de yerine IsDeterministic getirilmesi gerekir. Ortak dil çalışma zamanı (CLR) işlevi belirlenimci olarak işaretlenmişse, uzak sunucuda yan etkilere neden olmamalıdır. Bağlam bağlantısına yönelik yan etkiler kısıtlanmış olsa da, SQL Server uzak bağlantılar üzerindeki yan etkiler için kısıtlamayı zorlamaz.

Bu özniteliğin varsayılan değeridir false.

Aynı giriş değerleri ve aynı veritabanı durumu dikkate alındığında işlev her zaman aynı çıkış değerlerini üretmiyorsa, bir işlevi belirleyici olarak işaretlemeyin. İşlev gerçekten belirleyici olmadığında bir işlevin belirleyici olarak işaretlenmesi dizinlenmiş görünümlerin ve hesaplanan sütunların bozulmasına neden olabilir.

Şunlara uygulanır