在Azure SQL数据仓库中创建表,我想在标识列上进行哈希分发,但是会出现错误
Cannot insert explicit value for identity column in table 'Table_ff4d8c5d544f4e26a31dbe71b44851cb_11' when IDENTITY_INSERT is set to OFF.
这不可能吗?如果没有,为什么?是否有解决方法? (这个奇怪的表名来自何处?)
谢谢!
答案 0 :(得分:3)
您不能将IDENTITY列用作表中的哈希分布式列。 https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-identity#limitations
在SQLDW中,您为表提供的名称是其逻辑名称而不是其物理名称。诸如表名之类的逻辑元数据在控制节点上集中维护,以便诸如表重命名之类的操作快速且无痛。但是,SQLDW仍受表创建规则的约束 - 我们需要确保表名在现在和将来都是唯一的。因此,物理名称包含guid以提供唯一性。
说这个,你在这里的错误并不理想。如果您可以发布一个repro,以便我们可以改善您的体验,将会很有帮助。
我们也欢迎您在我们的uservoice频道上发布功能请求,以便在IDENTITY列上进行哈希分发。 https://feedback.azure.com/forums/307516-sql-data-warehouse