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.
答
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*以后使用。
http://*.com/questions/29506155/does-sql-azure-now-support-newsequentialid – user1016945