Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como saber se uma coluna computada é determinística no SQL Server


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.