13

これは、SQL Server で列のデータ型を変更するのフォローアップとして書いています。

以前の私の質問は、すべてのインデックスと制約を削除する必要があるかどうかであり、それらを削除する必要があると回答されました。

そのため、このトピックについてインターネットをサーフィンしていると、インデックスを削除して再作成するよりも、インデックスを無効にして有効にする方がよいという投稿をいくつか見つけました。

それで、それを行うより良い方法はどれですか?インデックスを無効にすると、列のデータ型も変更できますか? 両者の違いは何ですか?

インデックスの削除と作成を伴うステートメント

DROP INDEX UX_1_COMPUTATION ON  dbo.Computation 

ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null

CREATE UNIQUE INDEX UX_1_COMPUTATION ON dbo.Computation (ComputationID);

インデックスを無効および有効にするステートメント

ALTER INDEX [UX_1_COMPUTATION ] ON  dbo.Computation DISABLE

ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null

ALTER INDEX [UX_1_COMPUTATION ] ON dbo.Computation REBUILD;
4

1 に答える 1