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

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

適用於