Sdílet prostřednictvím


SqlFunctionAttribute.IsDeterministic Vlastnost

Definice

Určuje, zda je uživatelem definovaná funkce deterministická.

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

Hodnota vlastnosti

true pokud je funkce deterministická; jinak false.

Poznámky

Uživatelem definovaná funkce se označuje jako deterministická, pokud vždy vytváří stejné výstupní hodnoty se stejnými vstupními hodnotami a se stejným stavem databáze.

Vlastnost IsDeterministic je také užitečná pro indexování výsledku funkce ve formě indexovaných počítaných sloupců a indexovaných zobrazení. Pokud tato vlastnost není zadána, předpokládá se, že funkce není deterministická.

Funkce, které přistupující k místním datům, můžou být deterministické. Vlastnost přístupu k datům je zachycena samostatně vlastnostmi DataAccess a SystemDataAccess .

Mějte na paměti, že přístup k datům ke vzdáleným serverům (například pomocí SqlConnection připojení k jiné instanci SQL Server) je k dispozici ve funkcích definovaných uživatelem. I tak ale musíte deklaraci respektovat IsDeterministic . Pokud je funkce CLR (Common Language Runtime) označená jako deterministická, neměla by na vzdáleném serveru způsobovat vedlejší účinky. I když jsou vedlejší účinky na kontextové připojení omezené, SQL Server omezení vedlejších efektů u vzdálených připojení nevynutí.

Výchozí hodnota tohoto atributu je false.

Neoznačíte funkci jako deterministickou, pokud při stejných vstupních hodnotách a stejném stavu databáze nevytváří vždy stejné výstupní hodnoty. Označení funkce jako deterministické, pokud není skutečně deterministická, může vést k poškození indexovaných zobrazení a počítaných sloupců.

Platí pro