Allow index creation for tables within a SNAPSHOT isolation level transaction
While it is possible to create a table including an index within a SNAPSHOT transaction (in my specific case, a temporary table) and then populate it with data, it is not possible to create a table, add data to it, then add the index.
There are many cases when using temp table processing where the performance penalty for adding data to an already-indexed table can make the operation take 2x the amount of resources or even more. For large tables, this can make it impractical to use SNAPSHOT isolation even in cases where it would otherwise be very desirable.
Requesting the ability to add an index to a table within a SNAPSHOT transaction. If it makes it easier to implement, restricting this to only objects created within the scope of the transaction would be a use case that would cover a lot of the ground.
Steve Ognibene commented
In particular having this feature would be valuable for SELECT ... INTO #TempTable scenarios where there is currently no way to add an index to the resulting temp table when in snapshot isolation without restructuring the query to create the temp table and indexes in advance. This causes such queries to be a significant ongoing maintenance burden as any time the underlying data types change, any manually codified temp table that uses the fields has to change too.