【问题标题】:Azure SQL Database: 'NEWSEQUENTIALID' is not a recognized built-in function name when creating the tableAzure SQL 数据库:创建表时,“NEWSEQUENTIALID”不是可识别的内置函数名称
【发布时间】:2017-06-15 12:11:25
【问题描述】:

我正在尝试在 Azure SQL DB 上使用以下语法创建一个表,但它抛出了以下错误。

谁能告诉我为什么这里不允许使用 NEWSEQUENTIALID()。当我在本地服务器上创建相同的内容时,它工作正常。

NEWSEQUENTIALID() 有什么替代品吗?

表:

CREATE TABLE #SampleTable
  (  
   StoreGUID UNIQUEIDENTIFIER  DEFAULT (NEWSEQUENTIALID()),   
   AddressGUID  UNIQUEIDENTIFIER DEFAULT (NEWSEQUENTIALID()) 
  )  

错误:

消息 104162,第 16 级,状态 1,第 1 行 'NEWSEQUENTIALID' 不是可识别的内置函数名称。

【问题讨论】:

标签: azure azure-sql-database azure-sqldw


【解决方案1】:

Azure SQL 数据仓库目前不支持NEWSEQUENTIALID,如Unsupported system functions 部分所述:

https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-migrate-code

如果您确实需要此功能,请考虑在此处提出功能请求:

https://feedback.azure.com/forums/307516-sql-data-warehouse

但顺便说一句,我不确定您为什么要在分布式系统中使用这些 - 它们没有意义。在 Azure SQL 数据仓库中,您可以通过ROUND_ROBIN 分发,在这种情况下,GUID 是顺序的无关紧要,或者通过HASHing 在列上分发;无法保证散列算法在散列后将您所谓的顺序 GUID 保持在一起。作为一种解决方法,您可以在一个普通的 SQL Server 机器上预先生成几十亿个,然后将它们导入您的 DW 以供以后使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 2017-02-08
    • 1970-01-01
    • 2014-06-12
    • 2014-01-25
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多