Upcoming change to CREATE OR REPLACE VIEW metadata preservation

Written by Dinesh Pawar

Last published at: October 13th, 2026

Overview

Starting on Dec 2 2026, CREATE OR REPLACE VIEW will update a view in-place instead of dropping and re-creating it. Grants, tags, and comments are preserved by default with one caveat:

  • You must first remove Governed tags (AWS | Azure | GCP) on a view column before dropping the column via CREATE OR REPLACE VIEW. Otherwise, the statement will fail with a CANNOT_DROP_TAGGED_COLUMN error to protect the ABAC policies that depend on the governed tags.

 

After this change, workflows that replace views may retain permissions that were previously dropped, or fail when removing view columns with governed tags.

 

Where does this apply

This change applies when you run CREATE OR REPLACE VIEW on:

  • Classic all-purpose or jobs compute running Databricks Runtime 19 or above
  • Databricks SQL warehouses (serverless, pro, or classic)
  • Serverless compute for notebooks and jobs
  • Spark Declarative Pipelines (serverless or classic)

 

How to know if a view or workflow is exposed to the change

A. The workflow depends on metadata being cleared

  • The view has grants applied directly on the view, rather than inherited from the schema or catalog.
  • The pipeline relies on COR VIEW removing those grants, tags or comments.
  • Escape hatch: Add NOCOPY *, which drops grants, comments and tags (except governed tags).
CREATE OR REPLACE VIEW main.sales.revenue_daily 
NOCOPY * 
AS SELECT date, SUM(amount) AS revenue
FROM main.sales.transactions
GROUP BY date;

B. The workflow removes or renames governed-tagged columns

  • A governed tag is set on a view column, and COR VIEW statement removes or renames that column
  • Workaround: Unset the governed tag first, then run COR VIEW
UNSET TAG ON COLUMN <catalog>.<schema>.<view>.<column> <tag_key>;
CREATE OR REPLACE VIEW <catalog>.<schema>.<view> ...

 

Note

There is no escape hatch for dropping a governed-tagged column. This is consistent with ALTER VIEW today, and a security requirement to support ABAC policies on VIEW.

 

 

What you can do now

1. Identify affected views and workloads

Use the diagnostic notebook to find views with directly assigned grants or columns carrying governed tags.

 

2. Adopt the workarounds outlined above 

Adopt the NOCOPY *  syntax to drop grants, comments and tags on view replacement, and remove any governed tags before removing a tagged view column via CREATE OR REPLACE VIEW.

 

Appendix

Why should we block users from dropping a governed-tagged column via COR VIEW

Removing a governed tag requires APPLY TAG on the view + MANAGE on the tag. whereas COR VIEW requires ownership or MANAGE on the view. A user without permissions to drop a governed tag can do so via COR VIEW: 

Step Example
1

Admin applies governed tag pii to the ssn column of sales_view.

CREATE VIEW sales_view AS SELECT date, amount, ssn FROM sales_table
2

View owner or user with MANAGE runs COR VIEW to remove ssn column and the pii tag.

CREATE OR REPLACE VIEW sales_view AS SELECT date, amount FROM sales_table

Current behavior:  Drops ssn with pii tag successfully.

New behavior: Fails with CANNOT_DROP_TAGGED_COLUMN error; must UNSET TAG first

3

COR VIEW user can restore ssn column without the governed tag, thereby dropping the tag policy.

CREATE OR REPLACE VIEW sales_view AS SELECT date, amount, ssn FROM sales_table