为啥 SQL Server 2019 与 Azure SQL 数据库中的外部表语法不同? `

Posted

技术标签:

【中文标题】为啥 SQL Server 2019 与 Azure SQL 数据库中的外部表语法不同? `【英文标题】:Why is External Table syntax different in SQL Server 2019 vs Azure SQL Database? `为什么 SQL Server 2019 与 Azure SQL 数据库中的外部表语法不同? ` 【发布时间】:2020-07-21 19:05:23 【问题描述】:

我必须在 SQL Server 2019 和 Azure SQL 中执行跨数据库查询。我能够在两个数据库中创建外部数据源和外部表,但是语法似乎不同。如果有一个标准脚本可以在这两种情况下工作,有人可以指导我吗?

Azure SQL 数据库

外部数据源

创建外部数据源 SQLServerInstance2

与(

TYPE=RDBMS,

LOCATION='sourcesqlserver.database.windows.net',

DATABASE_NAME='sourcedb',

CREDENTIAL= SQLServerCredentials ) ;

外部表

创建外部表 [dbo].[SourceTable] ( Col1 INT NULL, Col2 INT NULL )

WITH (DATA_SOURCE = [SQLServerInstance2])

SQL Server 2019

外部数据源

创建外部数据源 SQLServerInstance2

与 ( 位置 = 'sqlserver://WINSQL2019:58137' , CREDENTIAL = SQLServerCredentials ) ;

外部表

创建外部表 [dbo].[SourceTable] ( Col1 INT NULL, Col2 INT NULL )

WITH (DATA_SOURCE = [SQLServerInstance2],LOCATION = N'[SourceDB].[dbo].[SourceTable]')

【问题讨论】:

嗨,Shubham Carg,如果我的回答对您有帮助,您可以将其标记为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。 【参考方案1】:

Azure SQL SQL 数据库是一个云数据库。 Azure SQL 数据库是一个完全托管的平台即服务 (PaaS) 数据库引擎

即使它与 SQL Server 的功能几乎相同,但仍有许多不同。

它们在不同的平台上运行,这就是语法可能不同的原因。

请参考此文档获取Transact-SQL differences between Azure SQL Database and SQL Server。

Azure SQL 数据库中的跨数据库查询比 SQL Server 更复杂。如果我们想在 Azure SQL 中实现与 SQL Server 相同的功能,则存在语法差异。

希望这会有所帮助。

【讨论】:

以上是关于为啥 SQL Server 2019 与 Azure SQL 数据库中的外部表语法不同? `的主要内容,如果未能解决你的问题,请参考以下文章

为啥在建立与 SQL Server 的连接时会发生与网络相关或特定于实例的错误?

为啥此相关子查询在 Oracle 和 SQL Server 中的工作方式不同

sql server 中创建架构,架构是干啥用的,为啥要创建架构,有啥好处?

BIT 和 Boolean 有啥区别,为啥我们可以在 SQL Server 2017 中使用 Boolean [重复]

SQL Server 2016 与 2019 函数

将本地 SQL Server 数据库同步到 Azure Windows Server SQL Server 的最佳方式是啥