Краткое описание проблемы:
Я создал глобальную временную таблицу, а затем создал кластерный индекс (добавил кластеризованное ограничение первичного ключа) для таблицы. Я удалил таблицу, предполагая, что она также удалит индекс. Затем я воссоздал таблицу с тем же именем без проблем. Затем, когда я пытался воссоздать тот же индекс с тем же именем, я получаю сообщение об ошибке:
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.##MyTempTable' and the index name 'PK_TempSampleID'.
Детали проблемы:
Мне нужно создать глобальную временную таблицу и загрузить в нее записитаблица в определенном порядке, используя:
SELECT FROM SomeTable INTO ##MyTempTable WHERE SomeCondition
ORDER BY не выполняет эту работу, поэтому я создал кластеризованный индекс (кластеризованное ограничение первичного ключа). Это помогло, и мои записи были упорядочены по соответствующему полю.
Однако я столкнулся с другой проблемой: я бросил таблицу и воссоздал ее без проблем, но при попытке воссоздания индекса я получил вышеупомянутую ошибку.
Я попытался удалить индекс, используя:
DROP INDEX PK_TempSampleID ON ##MyTempTable
И я получил это сообщение об ошибке:
Cannot drop the index '##TempFormattedSnapshot.PK_TempSampleID', because it does not exist or you do not have permission.
Я исследовал сообщения на этом и других форумах, и все кажетсясообщить, что при удалении временной таблицы индекс этой таблицы также удаляется. Мой опыт показывает мне иначе.