sql >> Databáze >  >> RDS >> Sqlserver

Jak zjistit, zda je vypočítaný sloupec deterministický na serveru SQL Server

Když vytvoříte vypočítaný sloupec v SQL Server, výraz, který použijete pro sloupec, bude buď deterministický, nebo nedeterministický. To může mít důsledky, například zda jej můžete použít v indexu nebo jej označit jako „přetrvávající“.

Deterministický sloupec je sloupec, který vrátí stejnou hodnotu pro určitou sadu vstupních hodnot a při stejném stavu databáze. Nedeterministický sloupec může vrátit jinou hodnotu, i když je zadán stejný vstup, i když stav databáze zůstane stejný. Například funkce, která vrací aktuální datum, je nedeterministická, protože každý den vrátí jinou hodnotu.

Můžete použít COLUMNPROPERTY() pomocí funkce IsDeterministic argument ke zjištění, zda je vypočítaný sloupec deterministický.

Příklad

Zde je příklad k demonstraci.

SELECT 
  COLUMNPROPERTY(
    OBJECT_ID('dbo.Products'), 
    'TotalValue', 
    'IsDeterministic') 
    AS IsDeterministic;

Výsledek:

+-------------------+
| IsDeterministic   |
|-------------------|
| 1                 |
+-------------------+

V tomto případě TotalValue ze sloupce dbo.Products tabulka je deterministický. Pokud by tomu tak nebylo, výsledek by byl 0 .

IsDeterministic vlastnost se vztahuje pouze na počítané sloupce a sloupce zobrazení.


  1. Výukový program MySQL – Správa protokolů serveru MySQL:Otáčet, komprimovat, uchovávat a mazat

  2. Pochopení rozdílů mezi Table a Transaction API

  3. Jaký je rozdíl mezi znakovými sadami utf8mb4 a utf8 v MySQL?

  4. Nekompatibilita Openshift a net-ssh? (2.9.3-beta1 vs 2.9.2)