SqlFunctionAttribute.IsDeterministic 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指出使用者定義函式是否具有決定性。
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
。
如果函式不一定會產生相同的輸出值,則請勿將函式標示為具決定性,前提是相同的輸入值和相同的資料庫狀態。 當函式不具決定性時,將函式標示為決定性,可能會導致索引檢視和計算數據行損毀。