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:
|
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.