sql >> Database >  >> RDS >> Sqlserver

Op functies gebaseerde index in SQL SERVER 2005

U zou een berekende kolom moeten toevoegen

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

Je kunt het dan indexeren zoals je zou verwachten.

Uw functie moet echter deterministisch en nauwkeurig zijn, zoals gedefinieerd in http://msdn.microsoft.com/en-us/library/ms189292(v=sql.90).aspx . Uw functie moet aan deze vereisten voldoen, maar u moet wellicht With SchemaBinding toevoegen aan de functiedefinitie.

U kunt wellicht ook een weergave gebruiken

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)

Dingen die invoegt, schrijft naar de tabel, dingen die leest leest uit de weergave. Dit hangt ervan af of BEER_CODE een primaire sleutel is.

SQL Server heeft geen functiegebaseerde indexen zoals Oracle dat wel heeft.




  1. Hoe SQL-subtekenreeks naar decimaal te casten?

  2. Sql Server Data Tools laten werken met Visual Studio 2012 Express Release Candidate

  3. Types.NVARCHAR gebruiken met Oracle JDBC-stuurprogramma om met Cyrillische tekens te werken

  4. Hoe kan ik een query schrijven om individuele wijzigingen uit momentopnamen van gegevens te extraheren?