Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak sprawdzić, czy kolumna wyliczana jest deterministyczna w SQL Server

Podczas tworzenia kolumny wyliczanej w programie SQL Server wyrażenie użyte dla kolumny będzie deterministyczne lub niedeterministyczne. Może to mieć konsekwencje, takie jak to, czy możesz użyć go w indeksie lub oznaczyć go jako „utrwalony”.

Kolumna deterministyczna to taka, która zwróci tę samą wartość dla określonego zestawu wartości wejściowych i otrzyma taki sam stan bazy danych. Kolumna niedeterministyczna może zwrócić inną wartość, nawet jeśli ma te same dane wejściowe, nawet jeśli stan bazy danych pozostaje taki sam. Na przykład funkcja zwracająca bieżącą datę jest niedeterministyczna, ponieważ każdego dnia zwróci inną wartość.

Możesz użyć COLUMNPROPERTY() funkcja z IsDeterministic argument, aby dowiedzieć się, czy obliczona kolumna jest deterministyczna.

Przykład

Oto przykład do zademonstrowania.

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

Wynik:

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

W tym przypadku TotalValue kolumna z dbo.Products tabela jest deterministyczny. Gdyby tak nie było, wynik byłby 0 .

IsDeterministic właściwość dotyczy tylko kolumn obliczanych i kolumn widoku.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepszy sposób na przechowywanie czasu (gg:mm) w bazie danych

  2. SQL Server — krótkie obwody zapytań?

  3. pobierz ciąg rozdzielany przecinkami z wierszy

  4. Jak znaleźć optymalny unikalny identyfikator w tabeli w SQL Server:sp_special_columns

  5. Bazy danych systemu SQL Server – Konserwacja MSDB