Any command that copies a table’s rows also re-creates all of the indexes on the table. You need space for a complete copy of the table and copies of all indexes.
These commands do not estimate how much space is needed. They stop with an error message if they run out of space on any segment used by the table or its indexes. For large tables, this could occur minutes or even hours after the command starts.
You need free space on the segments used by the table and its indexes, as follows:
Free space on the table’s segment must be at least equal to:
The size of the table, plus
Approximately 20 percent of the table size, if the table has a clustered index and you are changing from allpages locking to data-only locking
.
Free space on the segments used by nonclustered indexes must be at least equal to the size of the indexes.
Clustered indexes for data-only-locked tables have a leaf level above the data pages. If you are altering a table with a clustered index from allpages locking to data-only locking, the resulting clustered index requires more space. The additional space required depends on the size of the index keys.