SqlFunctionAttribute.IsDeterministic Propiedad

Definición

Indica si la función definida por el usuario es determinista.

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

Valor de propiedad

true si la función es determinista; de lo contrario, false.

Comentarios

Se dice que una función definida por el usuario es determinista si siempre genera los mismos valores de salida según los mismos valores de entrada y el mismo estado de base de datos.

La IsDeterministic propiedad también es útil para indexar el resultado de la función en forma de columnas calculadas indizadas y vistas indizadas. Si no se especifica esta propiedad, se supone que la función no es determinista.

Las funciones que acceden a los datos locales pueden ser deterministas. La característica de acceso a datos se captura por separado por las DataAccess propiedades y SystemDataAccess .

Tenga en cuenta que el acceso a los datos a los servidores remotos (por ejemplo, el uso de para SqlConnection conectarse a otra instancia de SQL Server) está disponible en funciones definidas por el usuario. Sin embargo, todavía debe respetar la IsDeterministic declaración. Si la función de Common Language Runtime (CLR) está marcada como determinista, no debe causar efectos secundarios en el servidor remoto. Aunque los efectos secundarios de la conexión de contexto están restringidos, SQL Server no aplicarán la restricción para efectos secundarios a través de conexiones remotas.

El valor predeterminado de este atributo es false.

No marque una función como determinista si la función no siempre genera los mismos valores de salida, dados los mismos valores de entrada y el mismo estado de base de datos. Marcar una función como determinista cuando la función no es realmente determinista puede dar lugar a vistas indizadas dañadas y columnas calculadas.

Se aplica a