SqlFunctionAttribute.IsDeterministic Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, ob die benutzerdefinierte Funktion deterministisch ist.
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
Eigenschaftswert
true
, wenn die Funktion deterministisch ist, andernfalls false
.
Hinweise
Eine benutzerdefinierte Funktion gilt als deterministisch, wenn Sie bei denselben Eingabewerten und demselben Datenbankzustand auch immer dieselben Ausgabewerte erzeugt.
Die IsDeterministic -Eigenschaft ist auch nützlich für die Indizierung des Ergebnisses der Funktion in Form von indizierten berechneten Spalten und indizierten Sichten. Wenn diese Eigenschaft nicht festgelegt ist, wird angenommen, dass die Funktion nicht deterministisch ist.
Funktionen, die auf lokale Daten zugreifen, können deterministisch sein. Das Datenzugriffsmerkmal wird separat durch die DataAccess Eigenschaften und SystemDataAccess erfasst.
Beachten Sie, dass der Datenzugriff auf Remoteserver (z. B. mithilfe von zum Herstellen einer SqlConnection Verbindung mit einer anderen SQL Server-Instanz) in benutzerdefinierten Funktionen verfügbar ist. Sie müssen die IsDeterministic Erklärung jedoch trotzdem einhalten. Wenn die CLR-Funktion (Common Language Runtime) als deterministisch gekennzeichnet ist, sollte sie keine Nebenwirkungen auf dem Remoteserver verursachen. Während Nebeneffekte für die Kontextverbindung eingeschränkt sind, erzwingt SQL Server die Einschränkung für Nebeneffekte bei Remoteverbindungen nicht.
Der Standardwert dieses Attributs ist false
.
Markieren Sie eine Funktion nicht als deterministisch, wenn die Funktion bei den gleichen Eingabewerten und demselben Datenbankzustand nicht immer dieselben Ausgabewerte erzeugt. Wenn Sie eine Funktion als deterministisch markieren, sie aber nicht wirklich deterministisch ist, kann dies zu beschädigten indizierten Sichten und berechneten Spalten führen.