Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да разберете дали изчислената колона е детерминистична в SQL Server

Когато създавате изчислена колона в SQL Server, изразът, който използвате за колоната, ще бъде или детерминиран, или недетерминиран. Това може да има последици, като например дали можете да го използвате или не в индекс или да го маркирате като „постоянен“.

Детерминираната колона е тази, която ще върне същата стойност за конкретен набор от входни стойности и при едно и също състояние на базата данни. Една недетерминирана колона може да върне различна стойност, дори когато е дадена една и съща информация, дори ако състоянието на базата данни остава същото. Например, функция, която връща текущата дата, е недетерминистична, защото всеки ден ще връща различна стойност.

Можете да използвате COLUMNPROPERTY() функция с IsDeterministic аргумент, за да разберете дали една изчислена колона е детерминирана.

Пример

Ето пример за демонстрация.

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

Резултат:

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

В този случай TotalValue колона от dbo.Products таблица е детерминистичен. Ако не беше, резултатът щеше да е 0 .

IsDeterministic свойството се прилага само за изчислени колони и колони за изглед.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ВЪВЕТЕ СТОЙНОСТИ, КЪДЕТО НЕ СЪЩЕСТВУВА

  2. SQL Server bcp Utility и числовият тип данни

  3. Как да се свържа с база данни MSSQL с помощта на DBI модула на Perl в Windows?

  4. SQL Server (localdb)\v11.0 е обяснено

  5. Как да изпълня съхранена процедура на MS SQL Server в java/jsp, връщайки данни от таблица?