• Books online list the following requirements/limitations for indexed views:

    The ANSI_NULLS and QUOTED_IDENTIFIER options must have been set to ON when the CREATE VIEW statement was executed. The OBJECTPROPERTY function reports this for views through the ExecIsAnsiNullsOn or ExecIsQuotedIdentOn properties.

    The ANSI_NULLS option must have been set to ON for the execution of all CREATE TABLE statements that create tables referenced by the view.

    The view must not reference any other views, only base tables.

    All base tables referenced by the view must be in the same database as the view and have the same owner as the view.

    The view must be created with the SCHEMABINDING option. Schema binding binds the view to the schema of the underlying base tables.

    User-defined functions referenced in the view must have been created with the SCHEMABINDING option.

    Tables and user-defined functions must be referenced by two-part names in the view. One-part, three-part, and four-part names are not allowed.

    All functions referenced by expressions in the view must be deterministic. The IsDeterministic property of the OBJECTPROPERTY function reports whether a user-defined function is deterministic. For more information, see Deterministic and Nondeterministic Functions.

    Note that the limitation of referencing tables in a different database is specifically mentioned.

    My suggestion would be to create the indexed view in the database containing the tables. Then create a synonym in the database you originally wanted the view in and have it point to the new view in the other database.

    This is probably the only workaround to your issue.

    I do have a few questions for you about your plan to use an indexed view.

    First, you realize that an indexed view creates a copy of the entire result set and does not necessarily query the involved tables for each query?

    Is the data you wish to include in the indexed view highly transactional or fairly static? If highly transactional, you will probably see a performance hit rather than improvement due to the requirement for the system to update the result set with each data change.