Quando você cria uma coluna computada no SQL Server, a expressão usada para a coluna será determinística ou não determinística. Isso pode ter implicações, como se você pode ou não usá-lo em um índice ou marcá-lo como “persistente”.
Uma coluna determinística é aquela que retornará o mesmo valor para um conjunto específico de valores de entrada e dado o mesmo estado do banco de dados. Uma coluna não determinística pode retornar um valor diferente mesmo quando recebe a mesma entrada, mesmo que o estado do banco de dados permaneça o mesmo. Por exemplo, uma função que retorna a data atual não é determinística, pois retornará um valor diferente a cada dia.
Você pode usar o
COLUMNPROPERTY()
função com o IsDeterministic
argumento para descobrir se uma coluna computada é ou não determinística. Exemplo
Aqui está um exemplo para demonstrar.
SELECT COLUMNPROPERTY( OBJECT_ID('dbo.Products'), 'TotalValue', 'IsDeterministic') AS IsDeterministic;
Resultado:
+-------------------+ | IsDeterministic | |-------------------| | 1 | +-------------------+
Neste caso, o
TotalValue
coluna do dbo.Products
tabela é determinista. Se não fosse, o resultado seria 0
. O
IsDeterministic
A propriedade só se aplica a colunas computadas e colunas de exibição.