1. ホーム
  2. sql

[解決済み] SQL Serverでスキーマバインドビューから参照されるカラムのサイズを変更する

2022-07-24 03:42:23

質問

SQLサーバーでカラムのサイズを変更しようとしています。

ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL

の長さは Addr1 は元々 40 .

失敗して、このようなエラーが発生しました。

The object 'Address_e' is dependent on column 'Addr1'.
ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access 
this column.

私はそれについて読んでみたのですが、いくつかのビューがこの列を参照しているため、SQL Server は実際にエラーを発生させた列を削除しようとしているようです。

Address_e は、以前の DB 管理者によって作成されたビューです。

他にカラムのサイズを変更する方法はありますか?

どのように解決するのですか?

ビューはおそらくWITH SCHEMABINDINGオプションを使用して作成されており、これはそのような変更を防ぐために明示的に配線されていることを意味します。スキーマバインディングが機能し、これらのビューを壊さないようにしたようですね、ラッキーな日ですね。データベース管理者に連絡し、データベースへの影響を主張した後、変更を行うよう依頼します。

から MSDN :

<ブロッククオート

スキーマバインディング

ビューを基礎となるテーブルのスキーマにバインドします。SCHEMABINDINGが指定された場合 SCHEMABINDINGが指定された場合、ベースとなる テーブルを変更することはできません。 ビューの定義に影響を与えるような方法で の定義に従います。 ビュー定義自体 は最初に修正されるか、削除されなければなりません。 になります。 テーブルへの依存を取り除くために への依存を取り除く必要があります。