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.