「Project」テーブルに「NOT NULL」に変更したい列「StoreNumber」があります。最近、古いデータをすべてサニタイズして、null エントリがないようにしました。ただし、次のステートメントを実行すると、さまざまなビュー、インデックス、および統計への複数の依存関係が原因で失敗します
ALTER TABLE [Project]
ALTER COLUMN StoreNumber VARCHAR(9) NOT NULL
GO
これらのビュー/インデックス/統計をすべて削除してから、alter ステートメントを実行し、すべてのビュー/インデックス/統計を再度作成する最も速い方法は何ですか? すべての drop ステートメントと create ステートメントを 1 つずつコピーできることはわかっていますが、1 つのクエリでスクリプトを生成したいと考えています。
余談ですが、列をより制限している場合、SQL Server が気にするのはなぜですか? データにはヌルが含まれておらず、データ型や列のサイズを変更していません。この種の変更は、依存するビュー、インデックス、または統計をどのように壊しますか? 私が見ていない正当な理由があると確信していますが、例が欲しいです。