Create Indexed Views SQL Server 2005 and 2008

SQL Server supports creating indexes on a view. It is the same concept as Materialized Views in Oracle. The main difference in the syntax in normal views and indexed views is the clausa “with schemabinding”


CREATE VIEW [dbo].[HistoryTable] with schemabinding
AS
SELECT id, activityID, userID, value, date
FROM dbo.ActivityHistory

Now go ahead amd create the index on the view you just created.

CREATE UNIQUE CLUSTERED INDEX [IDX_ActivityStatusID] ON [dbo].[HistoryTable]
(
 [activityID] ASC,
 [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

Advertisements