2

データベースのグループでクリーンアップを行っています。最初のステップは、データベース内のすべてのインデックスを正しいファイル グループに取得することです。

現在、これらのインデックスは DATA ファイル グループと INDEXES ファイル グループの間で混在しています。それらはすべて INDEXES ファイル グループに移動する必要があります。

これはスクリプトで簡単に実行できると思いますが、主キーのインデックスをどのように処理するのが最善でしょうか?

次のコマンド

DROP INDEX table.indexname

エラーが発生します:

明示的な DROP INDEX は、インデックス 'Answer.PK_Answer' では許可されていません。PRIMARY KEY 制約の適用に使用されています。

では、最善の方法は何ですか?主キーを削除してからインデックスを削除し、次に主キーを再作成し、最後に正しいファイル グループにインデックスを再作成する必要がありますか? この方法に欠点はありますか?

4

3 に答える 3

0

インデックス ファイル グループのインデックスを削除して再作成する以下のステートメントを試すことができます。

CREATE CLUSTERED INDEX PK_Answer ON tablename(Answer) WITH (DROP_EXISTING = ON);

于 2011-03-24T13:21:51.197 に答える
0

他の誰かがこの情報を必要とする場合 (私はそうしました)、再作成された PRIMARY KEY を別の場所に移動したい場合は、最後に FILEGROUP を追加してください。以前の回答のどちらも、この部分を規定していませんでした:

CREATE UNIQUE CLUSTERED INDEX PK_TableName_Answer ON TableName(Answer) WITH(DROP_EXISTING = ON) ON [INDEX];
于 2014-03-26T16:05:42.407 に答える
0

彼は主キーを持っているので:

CREATE UNIQUE CLUSTERED INDEX PK_Answer ON tablename(Answer) WITH (DROP_EXISTING = ON);

于 2013-04-25T10:12:35.520 に答える