Partilhar via


SqlFunctionAttribute.IsDeterministic Propriedade

Definição

Indica se a função definida pelo usuário é determinística.

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 da propriedade

true se a função for determinística; caso contrário, false.

Comentários

Uma função definida pelo usuário será considerada determinística se ela sempre produzir os mesmos valores de saída, considerando os mesmos valores de entrada e o mesmo estado do banco de dados.

A IsDeterministic propriedade também é útil para indexar o resultado da função na forma de colunas computadas indexadas e exibições indexadas. Se essa propriedade não for especificada, a função será considerada não determinística.

As funções que acessam dados locais podem ser determinísticas. A característica de acesso a dados é capturada separadamente pelas DataAccess propriedades e SystemDataAccess .

Observe que o acesso a dados a servidores remotos (por exemplo, usando um SqlConnection para se conectar a outra instância SQL Server) está disponível em funções definidas pelo usuário. No entanto, você ainda deve honrar a IsDeterministic declaração. Se a função CLR (Common Language Runtime) for marcada como determinística, ela não deverá causar efeitos colaterais no servidor remoto. Embora os efeitos colaterais na conexão de contexto sejam restritos, SQL Server não imporá a restrição para efeitos colaterais em conexões remotas.

O valor padrão desse atributo é false.

Não marque uma função como determinística se a função nem sempre produzir os mesmos valores de saída, considerando os mesmos valores de entrada e o mesmo estado do banco de dados. Marcar uma função como determinística quando a função não é realmente determinística pode resultar em exibições indexadas corrompidas e colunas computadas.

Aplica-se a