There are few requirements in real world when Index on table needs to be disabled and re-enabled afterwards. e.g. DTS, BCP, BULK INSERT etc. Index can be dropped and recreated. I prefer to disable the Index if I am going to re-enable it again. The script below shows how to disable index with ALTER INDEX and enable it with REBUILD.

USE AdventureWorks GO ----Diable Index ALTER INDEX [IX_StoreContact_ContactTypeID] ON Sales.StoreContact DISABLE GO ----Enable Index ALTER INDEX [IX_StoreContact_ContactTypeID] ON Sales.StoreContact REBUILD GO
Published by Pinal Dave on SQLAuthority. More of my work at pinaldave.com.





23 Comments. Leave new
Is there any way that we can drop the index without removing Foreign key?
ERROR Message :
Msg 3723, Level 16, State 6, Line 2
An explicit DROP INDEX is not allowed on index ‘Index_name’. It is being used for FOREIGN KEY constraint enforcement.
I know we can drop the foreign key and then re-create it but I’m dropping 1000s of Indexes and then re-create them all.
So, I just want to make sure before doing it.
Sir, Same can be done for clustered index as well?