다음을 통해 공유


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 속성은 인덱싱된 계산 열 및 인덱싱된 뷰 형식으로 함수의 결과를 인덱싱하는 데에도 유용합니다. 이 속성을 지정하지 않으면 함수는 비결정적인 것으로 간주됩니다.

로컬 데이터에 액세스하는 함수는 결정적일 수 있습니다. 데이터 액세스 특성은 및 SystemDataAccess 속성에 의해 DataAccess 별도로 캡처됩니다.

원격 서버에 대한 데이터 액세스(예: 를 사용하여 SqlConnection 다른 SQL Server 인스턴스에 연결)는 사용자 정의 함수에서 사용할 수 있습니다. 그러나 선언은 계속 적용 IsDeterministic 해야 합니다. CLR(공용 언어 런타임) 함수가 결정적으로 표시되면 원격 서버에서 부작용이 발생하지 않아야 합니다. 컨텍스트 연결에 대한 부작용은 제한되지만 SQL Server 원격 연결에 대한 부작용에 대한 제한을 적용하지 않습니다.

이 특성의 기본값은 false입니다.

동일한 입력 값과 동일한 데이터베이스 상태를 감안할 때 함수가 항상 동일한 출력 값을 생성하지 않는 경우 함수를 결정적으로 표시하지 마세요. 함수가 실제로 결정적이지 않은 경우 함수를 결정적으로 표시하면 인덱싱된 뷰와 계산 열이 손상될 수 있습니다.

적용 대상