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

Index založený na funkcích v SQL SERVER 2005

Budete muset přidat vypočítaný sloupec

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

Poté jej můžete indexovat, jak byste očekávali.

Vaše funkce však musí být deterministická a přesná, jak je definováno v http://msdn.microsoft.com/en-us/library/ms189292(v=sql.90).aspx . Vaše funkce by měla splňovat tyto požadavky, ale možná budete muset do definice funkce přidat With SchemaBinding.

Můžete také použít zobrazení

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)

Věci, které vkládají zápisy do tabulky, věci, které čte, čte z pohledu. To závisí na tom, že BEER_CODE je primární klíč.

SQL Server nemá indexy založené na funkcích stejně jako Oracle.




  1. Jak získat přístup k vestavěné šabloně CRM v aplikaci Microsoft Access

  2. MySQL:Může uložená procedura vyvolat Java program?

  3. Co znamená omezení velikosti indexu MySQL?

  4. Nechápu, proč je moje proměnná NULL