これは、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;