ステージング テーブル (stage_enrolments) とプロダクション テーブル (enrolments) があります。ステージング テーブルはパーティション分割されていませんが、運用テーブルはパーティション分割されています。ALTER TABLE SWITCH ステートメントを使用して、ステージング テーブルのレコードを本番環境に転送しようとしています。
ALTER TABLE dbo.stage_enrolments SWITCH TO dbo.enrolments PARTITION @partition_num;
ただし、このステートメントを実行すると、次のエラーが発生します。
ALTER TABLE SWITCH ステートメントが失敗しました。ターゲット テーブル 'Academic.dbo.enrolments' は 1 つのインデックス付きビューによって参照されますが、ソース テーブル 'Academic.dbo.stage_enrolments' は 0 個の一致するインデックス付きビューによってのみ参照されます
登録に関するビューは分割されていますが、dbo.stage_enrolments で定義したのと同じインデックス付きビューを dbo.enrolments で定義しています。ビューとそのインデックスを再作成して、すべてのオプションが同じであることを確認しようとしましたが、同じ結果が得られました。dbo.enrolments ビューからインデックスを削除すると、正常に動作します。
インデックス付きビューを持つ別のテーブルのセットで動作しているため、これらで動作しない理由がわかりません。なぜこれが起こっているのかについて誰かが考えを持っていますか? 他に何をチェックすればよいですか?