Disabling or enabling a regular view (SQL)

You can control whether a regular view is available for use by the database server by enabling or disabling it.

Prerequisites

You must be a user with DBA authority or be the owner of the view.

Before you enable a regular view, you must re-enable any disabled views that it references.

Context and remarks

Many.

 Disable or enable a regular view using SQL

If you disable a view, other views that reference it, directly or indirectly, are automatically disabled. So, once you re-enable a view, you must re-enable all other views that were dependent on the view when it was disabled. You can determine the list of dependent views before disabling a view using the sa_dependent_views system procedure.

  1. Connect to the database.

  2. To disable a regular view, execute an ALTER VIEW...DISABLE statement.

  3. To enable a regular view, execute an ALTER VIEW...ENABLE statement.

Results

When you disable a regular view, the database server keeps the definition of the view in the database; however, the view is not available for use in satisfying a query.

If a query explicitly references a disabled view, the query fails and an error is returned.

Next

Once you re-enable a view, you must re-enable all other views that are dependent on the view when it was disabled. You can determine the list of dependent views before disabling a view using the sa_dependent_views system procedure.

When you enable a regular view, the database server recompiles it using the definition stored for the view in the database. If compilation is successful, the view status changes to VALID. An unsuccessful recompile could indicate that the schema has changed in one or more of the referenced objects. If so, you must change either the view definition or the referenced objects until they are consistent with each other, and then enable the view.

Once a view is disabled, it must be explicitly re-enabled so that the database server can use it.

Example

The following example disables a regular view called ViewSalesOrders owned by GROUPO.

ALTER VIEW GROUPO.ViewSalesOrders DISABLE;

The following example re-enables the regular view called ViewSalesOrders owned by GROUPO.

ALTER VIEW GROUPO.ViewSalesOrders ENABLE;

 See also