SqlFunctionAttribute.IsDeterministic Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ů.