Распределение хеша по столбцу идентификаторов

Создавая таблицу в хранилище данных SQL Azure, я хотел бы выполнить распределение хэшей по столбцу идентификаторов, но получаю сообщение об ошибке, которое

Cannot insert explicit value for identity column in table 'Table_ff4d8c5d544f4e26a31dbe71b44851cb_11' when IDENTITY_INSERT is set to OFF.

Разве это невозможно? А если нет, то почему? И есть ли обходной путь? (И откуда взялось это странное имя таблицы?)

Спасибо!


person Anders    schedule 05.12.2017    source источник


Ответы (1)


Вы не можете использовать столбец IDENTITY в качестве распределенного столбца хэша в вашей таблице. https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-identity#limitations

В SQLDW имя, которое вы даете своей таблице, является ее логическим именем, а не физическим именем. Логические метаданные, такие как имена таблиц, хранятся централизованно на узле управления, поэтому такие операции, как переименование таблиц, выполняются быстро и безболезненно. Однако SQLDW по-прежнему связан правилами создания таблиц — нам нужно убедиться, что имя таблицы уникально как сейчас, так и в будущем. Поэтому физические имена содержат направляющие для обеспечения этой уникальности.

Сказав это, ошибка, которую вы имеете здесь, не идеальна. Было бы полезно, если бы вы могли опубликовать репродукцию, чтобы мы могли улучшить ваш опыт.

Вы также можете опубликовать запрос функции на нашем канале uservoice для распределения хэша в столбце IDENTITY. https://feedback.azure.com/forums/307516-sql-data-warehouse

person JRJ    schedule 05.12.2017
comment
Спасибо вам за это. Я переключусь на GUID в качестве суррогатного ключа вместо столбца IDENTITY — это должно помочь. - person Anders; 06.12.2017
comment
Что касается воспроизведения, похоже, что с тех пор, как я создал таблицу на прошлой неделе, произошло обновление, потому что теперь это больше невозможно - я получаю это сообщение: Столбец идентификаторов не поддерживается в качестве столбца распределения. Это означает, что проблема, которая у меня была в этот пост больше не будет доступен никому, потому что они не могут создать таблицу, в которой столбец идентификаторов является столбцом распределения. - person Anders; 06.12.2017