web-dev-qa-db-ja.com

変更がバインディング要件を満たしている場合、スキーマバインディングで参照されているビューを変更できますか?

SQL Server 2008では、ビューWITH SCHEMABINDINGそして私はそれを変更する必要があります。

エイリアスを変更せずに列を変更するので、コンシューマーは影響を受けません。

これに依存している他のすべてのビューを削除すると、それらを再作成できるため、SCHEMABINDINGは引き続き有効です。

ALTERにするために、このビューのスキーマロックを一時的に無効にできますか?

または、依存するビューを削除して、変更後に再作成する必要がありますか?

4
Matthew

依存するビューを削除する必要はありませんが、スキーマバインディングにならないように(一時的に)変更する必要があります。それらのいずれかにインデックスが付けられている場合は、インデックスを再作成する必要があります。

SQL Serverにはスキーマバインド用の重み付けシステムがありません。オブジェクトを変更することはできません。限目。

ALTER VIEW dbo.view_name
--Remove this WITH SCHEMABINDING
AS
  SELECT ...
7
Aaron Bertrand