Azure SQL数据库:创建表时,'NEWSEQUENTIALID'不是公认的内置函数名称

Azure SQL数据库:创建表时,'NEWSEQUENTIALID'不是公认的内置函数名称

问题描述:

我正尝试在Azure SQL DB上使用以下语法创建表,并抛出以下错误。Azure SQL数据库:创建表时,'NEWSEQUENTIALID'不是公认的内置函数名称

任何人都可以告诉我为什么NEWSEQUENTIALID()不允许在这里。当我在内部部署服务器上创建相同的服务器时,它的工作正常。

是否有对NEWSEQUENTIALID()的替代?

表:

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

错误:

Msg 104162, Level 16, State 1, Line 1 'NEWSEQUENTIALID' is not a recognized built-in function name.

+1

http://*.com/questions/29506155/does-sql-azure-now-support-newsequentialid – user1016945

Azure的SQL数据仓库在这个时候不支持NEWSEQUENTIALID,因为在这里的Unsupported system functions节记载:

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

如果你真的r equire此功能考虑制定功能要求在这里:

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

不过顺便说一句,我不知道你为什么会在分布式系统中希望这些 - 它们没有任何意义。在Azure SQL数据仓库中,您分发ROUND_ROBIN,在这种情况下,连续的GUID是无关紧要的,或者通过HASH在列上分配;不能保证散列算法一次散列就能保证你所期望的连续的GUID。作为一种解决方法,您可以在普通SQL Server框中预先生成数十亿个文件,然后将它们导入到DW*以后使用。