Я получаю сообщение об ошибке, выполнив следующую команду Transact-SQL:Не удалось создать индекс из-за дубликата, которого не существует?
CREATE UNIQUE NONCLUSTERED INDEX IX_TopicShortName
ON DimMeasureTopic(TopicShortName)
Ошибка является:
Msg 1505, уровень 16, состояние 1, строка 1 Оператор CREATE UNIQUE INDEX заявление завершен, потому что дубликат ключа был найден для имени объекта 'dbo.DimMeasureTopic' и индекс имя 'IX_TopicShortName'. Значение дублирующего ключа :().
Когда я бегу SELECT * FROM sys.indexes WHERE name = 'IX_TopicShortName'
или SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[DimMeasureTopic]')
индекс IX_TopicShortName не отображается. Таким образом, похоже, что это не дубликат.
У меня такая же схема в другой базе данных и вы можете создать индекс без проблем. Любые идеи, почему это не будет создано здесь?
Это 3 раза, когда я пропустил эту ошибку и оказался здесь так благодарен. Также для дальнейшего использования я добавляю код для удаления дубликатов. Надеюсь, что это нормально УДАЛИТЬ ОТ DimMeasureTopic WHERE ID NOT IN ( SELECT MAX (ID) ОТ DimMeasureTopic GROUP BY TopicShortName) – Dowlers
Вы спасатель – Yiping
бы я до голосую за это каждый раз, когда он спас меня от ума потому что я не понимаю, что сообщение об ошибке! – Vaccano