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

Indeks oparty na funkcjach w SQL SERVER 2005

Musisz dodać kolumnę obliczeniową

Alter Table BEER_HERE Add Column XBEER_DATE As dbo.TRUNCATE_DATE(BEER_DATE)

Następnie możesz go zindeksować zgodnie z oczekiwaniami.

Jednak funkcja musi być deterministyczna i precyzyjna zgodnie z definicją w http://msdn.microsoft.com/en-us/library/ms189292(v=sql.90).aspx . Twoja funkcja powinna spełniać te wymagania, ale może być konieczne dodanie With SchemaBinding do definicji funkcji.

Możesz także użyć widoku

Create View V_BEER_HERE As Select BEER_CODE, BEER_DATE, dbo.TRUNCATE_DATE(BEER_DATE) As XBEER_DATE From BEER_HERE
Create Unique Clustered Index PK_V_BEER_HERE On V_BEER_HERE (BEER_CODE)
Create Index I_XBEER_DATE On V_BEER_HERE (XBEER_DATE)

Rzeczy, które wstawiają zapisy do tabeli, rzeczy, które czytają odczyty z widoku. To zależy od tego, czy BEER_CODE jest kluczem podstawowym.

SQL Server nie ma indeksów opartych na funkcjach w taki sam sposób jak Oracle.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest unikalne ograniczenie w SQL Server — SQL Server / samouczek TSQL, część 95

  2. Dlaczego umieszczenie klauzuli WHERE poza widokiem ma fatalne wyniki?

  3. Dostęp Androida do zdalnej bazy danych SQL

  4. Jak uzyskać wartości maksymalne i minimalne z tabeli za pomocą funkcji agregującej — samouczek SQL Server / TSQL, część 129

  5. Jak znaleźć ciąg w ciągu w SQL Server