Udostępnij za pośrednictwem


SqlFunctionAttribute.IsDeterministic Właściwość

Definicja

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.

Dotyczy