Объекты SQL Server, т.е. таблицы и индексы имеют свои собственные пространства имен. Таким образом, можно иметь одно и то же имя для индекса и таблицы (но это не обычная / хорошая практика):
CREATE TABLE t(id INT PRIMARY KEY, col INT);
CREATE INDEX t ON t(col);
SELECT * FROM sys.tables WHERE name = 't';
SELECT * FROM sys.indexes WHERE name = 't';
db <> Fiddle demo
К сожалению, я не могу создать такую же конструкцию, используя определение встроенного индекса :
CREATE TABLE t(id INT PRIMARY KEY, col INT, INDEX t(col));
Сообщение 2714 Уровень 16 Состояние 5 Строка 1
В базе данных уже есть объект с именем 't'.
-- below code is working correctly
CREATE TABLE t(id INT PRIMARY KEY, col INT, INDEX t1(col));
db <> fiddle demo 2
Я что-то упускаю из виду или это ошибка?