Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Índice Baseado em Função no SQL SERVER 2005


Você precisaria adicionar uma coluna computada
Alter Table BEER_HERE Add Column XBEER_DATE As dbo.TRUNCATE_DATE(BEER_DATE)

Você pode indexá-lo como seria de esperar.

No entanto, sua função precisa ser determinística e precisa, conforme definido em http://msdn.microsoft.com/en-us/library/ms189292(v=sql.90).aspx . Sua função deve atender a esses requisitos, mas talvez seja necessário adicionar With SchemaBinding à definição da função.

Você também pode usar uma visualização
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)

Coisas que inserem gravações na tabela, coisas que lêem leituras da exibição. Isso depende de BEER_CODE ser uma chave primária.

O SQL Server não possui índices baseados em função da mesma forma que o Oracle.