目标
创建从 Azure 服务器 SQL 数据库到本地服务器服务器数据库的查询。
此查询曾经使用来自两个本地服务器及其各自数据库的链接服务器对象进行。
我已经成功地完成了 Azure 云服务器上两个数据库之间的跨数据库查询。但是,我无法在 Azure 服务器和本地服务器之间复制链接服务器对象可以提供的类似方面。
当前情景
在serverA 上,我为serverB创建了一个链接服务器对象。我的两个本地服务器通信如下:
--serverA = on premise server
--serverB = on premise server
Using mycn As New SqlConnection("Data Source=serverA;Initial Catalog=DatabaseA;User Id=username;Password=pwd")
Dim query As String = "SELECT * FROM [DatabaseA].dbo.tableA " &
"INNER JOIN [serverB].[DatabaseB].dbo.tableB ON tableA_ID = tableB_ID"
End Using
外部数据源
为了将我的本地服务器与我的 Azure SQL 服务器通信,我必须创建一个外部数据源......我相信我的问题依赖于我的外部数据源。
-- ===========================================================
-- Create external data source template for Azure SQL Database
-- ===========================================================
IF EXISTS (
SELECT *
FROM sys.external_data_sources
WHERE name = N'serverB_DataSource'
)
DROP EXTERNAL DATA SOURCE serverB_DataSource
GO
CREATE EXTERNAL DATA SOURCE serverB_DataSource WITH
(
TYPE = RDBMS,
LOCATION = N'serverB',
DATABASE_NAME = N'databaseB',
CREDENTIAL = myCreds
)
GO
由于我试图从 Azure 服务器访问名为serverB的本地服务器,我是否需要指定它的实际 IP?不知道我在这里错过了什么......