【问题标题】:Hash distribution on identity column身份列上的哈希分布
【发布时间】:2017-12-05 23:34:27
【问题描述】:

在 Azure SQL 数据仓库中创建表,我想在标识列上进行哈希分布,但得到一个错误

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

这不可能吗?如果不是,为什么?有解决方法吗? (这个奇怪的表名是从哪里来的?)

谢谢!

【问题讨论】:

    标签: azure-sqldw


    【解决方案1】:

    您不能将 IDENTITY 列用作表中的散列分布列。 https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-identity#limitations

    在 SQLDW 中,您为表指定的名称是其逻辑名称而不是其物理名称。表名等逻辑元数据集中维护在控制节点上,使表重命名等操作快速无痛。但是,SQLDW 仍然受制表规则的约束——我们需要确保表名现在和将来都是唯一的。因此,物理名称包含提供这种唯一性的指南。

    也就是说,您这里的错误并不理想。如果您可以发布复制品,我们会为您改善体验,这将很有帮助。

    也欢迎您在我们的用户语音频道上发布功能请求,以便在 IDENTITY 列上进行哈希分布。 https://feedback.azure.com/forums/307516-sql-data-warehouse

    【讨论】:

    • 谢谢你。我将切换到 GUID 作为我的代理键而不是 IDENTITY 列 - 这应该可以解决问题。
    • 至于复制,自从我上周创建表以来似乎有更新,因为现在不再可能 - 我收到此消息:“身份列不支持作为分布列。 ”。这意味着任何人都无法再遇到我在这篇文章中遇到的问题,因为他们无法创建标识列是分布列的表。
    猜你喜欢
    • 2012-11-12
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多