Deterministic ve FUNCTION işlevleri

Deterministic İşlevler, her saat belirli bir giriş değerleri küme olarak adlandırılır ve veritabanının aynı durumu her saat aynı sonucu döndürür.Belirleyici olmayan işlevler erişimleri veritabanı durumunu aynı kalsa da belirli bir giriş değerleri küme denir her saat farklı sonuçlar döndürebilir.

Çeşitli özelliklerini belirleme yeteneği kullanıcı tanımlı işlevler vardır SQL Server Veritabanı Altyapısı Dizin sonuçlar işlevini çağırır hesaplanmış sütunları dizinlerde, veya aracılığıyla başvuran işlevi. Dizin oluşturulmuş görünümler işlevinBir işlev determinism bir tür özellik.Örneğin, Görünüm FUNCTION işlevler başvuruyorsa kümelenmiş dizin üzerinde bir görünüm oluşturulamıyor.İşlevler, determinism, dahil olmak üzere özellikleri hakkında daha fazla bilgi için bkz: Kullanıcı tanımlı işlev tasarım yönergeleri.

Bu konuda, yerleşik Sistem işlevleri determinism ve kullanıcı tanımlı işlevler deterministic özellik etkisi genişletilmiş saklı yordamlara çağrı içerdiğinde tanımlar.

Yerleşik işlev Determinism

Herhangi bir yerleşik işlev determinism etkileyen olamaz.Her yerleşik işlev deterministic veya FUNCTION nasıl işlev tarafından uygulanan temel alarak SQL Server.

Tüm toplu ve dize yerleşik işlevler deterministic değildir.Bu işlevlerin listesi için bkz: Toplama İşlevleri (Transact-SQL) ve Dize İşlevleri (Transact-SQL).

Her zaman aşağıdaki yerleşik işlevler toplu dışında yerleşik işlevler ve dize işlevlerinin kategorilerden deterministic olur.

ABS

DATEDIFF

GÜÇ

ACOS

DAY

RADYAN

ASIN

DERECE

ROUND

ATAN

EXP

OTURUM AÇMA

ATN2

KAT

SIN

TAVAN

ISNULL

KARE

BİRLEŞİM

ISNUMERİC

SQRT

COS

GÜNLÜK

TAN

COT

LOG10

YEAR

VERİUZUNLUĞU

MONTH

DATEADD

NULLIF

 

Aşağıdaki işlevler zaman deterministic olmayan, ancak belirli bir biçimde belirtildiğinde dizin oluşturulmuş görünümler veya hesaplanmış sütunları dizinlerde kullanılabilir.

İşlev

Açıklamalar

CAST

Deterministic ile kullanılan sürece datetime, smalldatetime, veya sql_variant.

DÖNÜŞTÜRME

Bunlardan biri koşulları sürece Deterministic bulunmaktadır:

  • Kaynak türü olan sql_variant.

  • Hedef türü sql_variant ve kaynak türünü FUNCTION.

  • Kaynak veya hedef türü olan datetime veya smalldatetime, başka bir kaynak veya hedef türü bir karakter olduğu dize, ve belirleyici bir stil belirtilir.Deterministik olması için stili parametresi bir sabit olmalıdır.Küçük veya eşit 100 stilleri için 20 ve 21 FUNCTION, dışında Ayrıca, stilleri.100'den fazla deterministic, 106, 107, 109 ve 113 stilleri dışında stillerdir.

SAĞLAMA TOPLAMI

Deterministic, checksum(*).

ISDATE

Deterministic yalnızca, convert işlev ile kullanıldığında, convert stili parametresi belirtilen ve stili 0, 100, 9 veya 109 eşit değil.

RAND

S_SAYI_ÜRET deterministic yalnızca zaman olan bir seed parametresi belirtilmişse.

Tüm yapılandırma, imleç, meta veriler, güvenlik ve Sistem statistiksel FUNCTION.Bu işlevlerin listesi için bkz: Yapılandırma işlevler (Transact-sql), İmleç işlevleri (Transact-sql), Meta veri işlevler (Transact-sql), Güvenlik işlevler (Transact-sql), ve Sistem istatistik işlevleri (Transact-sql).

Diğer kategorilerden aşağıdaki yerleşik işlevler, her zaman belirleyici olur.

@@ BAĞLANTILARI

@@ TOTAL_WRITE

@@ CPU_BUSY

CURRENT_TIMESTAMP

@@ DBTS

GETDATE

@@ BOŞTA

GETUTCDATE

@@ IO_BUSY

GET_TRANSMISSION_STATUS

@@ MAX_CONNECTIONS

MIN_ACTIVE_ROWVERSION

@@ PACK_RECEIVED

NEWID

@@ PACK_SENT

NEWSEQUENTIALID

@@ PACKET_ERRORS

PARSENAME

@@ TIMETICKS

RAND

@@ TOTAL_ERRORS

TEXTPTR

@@ TOTAL_READ

Çağırma genişletilmiş saklı yordamları işlevler

Genişletilmiş saklı yordamlar veritabanı üzerinde yan etkilere neden olabileceğinden, genişletilmiş saklı yordamları çağıran FUNCTION, işlevlerdir.Yan etkileri olan değişiklikleri gibi bir güncelleştirme için veritabanının genel durumuna bir tablo, ya da bir dosya veya ağ; gibi bir dış kaynak Örneğin, bir dosyayı değiştirme veya bir e-posta iletisi gönderme.Tutarlı bir dönme güvenmemelisiniz sonuç küme ne zaman yürütülen bir genişletilmiş saklı yordam kullanıcı tanımlı bir işlevden.Veritabanı üzerinde yan etkileri oluşturduğunuz kullanıcı tanımlı işlevler tavsiye edilmez.

Dan içinde bir işlev çağrıldığında, genişletilmiş saklı yordam sonuç kümeleri döndüremez istemci.Tüm Aç veri hizmetleri sonuç döndüren API ayarlar istemci bir dönüş kodu başarısız olacaktır.

Genişletilmiş saklı yordam yeniden bağlanıp SQL Server.Ancak, yordamı olamaz birleştirmek aynı hareketi olarak çağrılan genişletilmiş asıl işlev, saklı yordam.

Benzer şekilde çağırmaları bir toplu iş veya saklı yordam, genişletilmiş saklı yordam bağlamında yürütülecek olan Microsoft altında çalışacağı Windows güvenlik hesabı SQL Server çalışmaktadır.Genişletilmiş saklı yordam sahibi bu diğer kullanıcılar için izinleri vermeye zaman düşünmelisiniz yürütmek yordam.