SqlFunctionAttribute.IsDeterministic 屬性

定義

指出使用者定義函式是否具有決定性。

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

屬性值

如果函式具有決定性,則為 true,否則為 false

備註

如果使用者定義函數一律會產生相同的輸出值,就表示它一律會產生相同的輸出值,且具有相同的輸入值和相同的資料庫狀態。

屬性 IsDeterministic 也適用於以索引計算數據行和索引檢視表形式編製函式結果的索引。 如果未指定這個屬性,則會假設函式不具決定性。

存取本機數據的函式可以具決定性。 和屬性會個別DataAccessSystemDataAccess擷取數據存取特性。

請注意,遠端伺服器的數據存取 (例如,使用 SqlConnection 連接到另一個 SQL Server 實例) 可在使用者定義函式中使用。 不過,您仍必須接受 IsDeterministic 宣告。 如果 Common Language Runtime (CLR) 函式標示為具決定性,則不應該在遠端伺服器中造成副作用。 雖然對內容連線的副作用受到限制,但 SQL Server 不會對遠端連線強制執行副作用的限制。

此屬性的預設值為 false

如果函式不一定會產生相同的輸出值,則請勿將函式標示為具決定性,前提是相同的輸入值和相同的資料庫狀態。 當函式不具決定性時,將函式標示為決定性,可能會導致索引檢視和計算數據行損毀。

適用於