SqlFunctionAttribute.IsDeterministic Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.