View Restrictions
To create an index on a view in SQL Server 2005, the view definition must not contain:
ANY, NOT ANY
OPENROWSET, OPENQUERY, OPENDATASOURCE
arithmetic on imprecise (float, real) values
OPENXML
COMPUTE, COMPUTE BY
ORDER BY
CONVERT producing an imprecise result
OUTER join
COUNT(*)
reference to a base table with a disabled clustered index
GROUP BY ALL
reference to a table or function in a different database
Derived table (subquery in FROM list)
reference to another view
DISTINCT
ROWSET function
EXISTS, NOT EXISTS
self-join
expressions on aggregate results (e.g. SUM(x)+SUM(x))
STDEV, STDEVP, VAR, VARP, AVG
full-text predicates (CONTAINS, FREETEXT, CONTAINSTABLE, FREETEXTTABLE)
Subquery
imprecise constants (e.g. 2.34e5)
SUM on nullable expressions
inline or table-valued functions
table hints (e.g. NOLOCK)
MIN, MAX
text, ntext, image, filestream, or XML columns
non-deterministic expressions
TOP
non-unicode collations
UNION
contradictions SQL Server 2005 can detect that mean the view would be empty (e.g. where 0=1 and ...)