Anda perlu menambahkan kolom yang dihitung
Alter Table BEER_HERE Add Column XBEER_DATE As dbo.TRUNCATE_DATE(BEER_DATE)
Anda kemudian dapat mengindeksnya seperti yang Anda harapkan.
Namun, fungsi Anda harus deterministik dan tepat seperti yang didefinisikan dalam http://msdn.microsoft.com/en-us/library/ms189292(v=sql.90).aspx . Fungsi Anda harus memenuhi persyaratan ini, tetapi Anda mungkin perlu menambahkan With SchemaBinding ke definisi fungsi.
Anda mungkin juga dapat menggunakan tampilan
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)
Hal-hal yang menyisipkan menulis ke tabel, hal-hal yang membaca membaca dari tampilan. Ini bergantung pada BEER_CODE sebagai kunci utama.
SQL Server tidak memiliki indeks berbasis fungsi seperti halnya Oracle.