SqlFunctionAttribute.IsDeterministic Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wskazuje, czy funkcja zdefiniowana przez użytkownika jest deterministyczna.
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
Wartość właściwości
true
jeśli funkcja jest deterministyczna; w przeciwnym razie false
.
Uwagi
Mówi się, że funkcja zdefiniowana przez użytkownika jest deterministyczna, jeśli zawsze tworzy te same wartości wyjściowe, biorąc pod uwagę te same wartości wejściowe i ten sam stan bazy danych.
Właściwość IsDeterministic jest również przydatna do indeksowania wyniku funkcji w postaci indeksowanych kolumn obliczeniowych i indeksowanych widoków. Jeśli ta właściwość nie zostanie określona, zakłada się, że funkcja jest nie deterministyczna.
Funkcje, które uzyskują dostęp do danych lokalnych, mogą być deterministyczne. Charakterystyka dostępu do danych jest przechwytywana oddzielnie przez DataAccess właściwości i SystemDataAccess .
Należy pamiętać, że dostęp do danych do serwerów zdalnych (na przykład przy użyciu metody SqlConnection nawiązywania połączenia z innym wystąpieniem SQL Server) jest dostępny w funkcjach zdefiniowanych przez użytkownika. Należy jednak nadal przestrzegać deklaracji IsDeterministic . Jeśli funkcja środowiska uruchomieniowego języka wspólnego (CLR) jest oznaczona jako deterministyczna, nie powinna powodować skutków ubocznych na serwerze zdalnym. Chociaż skutki uboczne wobec połączenia kontekstowego są ograniczone, SQL Server nie wymusi ograniczenia skutków ubocznych na połączeniach zdalnych.
Wartość domyślna tego atrybutu to false
.
Nie oznaczaj funkcji jako deterministycznej, jeśli funkcja nie zawsze generuje te same wartości wyjściowe, biorąc pod uwagę te same wartości wejściowe i ten sam stan bazy danych. Oznaczanie funkcji jako deterministycznej, gdy funkcja nie jest naprawdę deterministyczna, może spowodować uszkodzenie indeksowanych widoków i obliczonych kolumn.