1

我已经从与 Azure DB 的链接服务器相关的问题中回答了以下步骤

我需要将链接服务器添加到 MS Azure SQL Server

-- Make a link to the cloud
EXEC sp_addlinkedserver   
     @server='[servername].database.windows.net',   -- specify the name of the linked server    
     @srvproduct=N'Azure SQL Db',
     @provider=N'SQLNCLI', 
     @datasrc='yourservername',             -- add here your server name   
     @catalog='FCS';
GO

--Set up login mapping
EXEC sp_addlinkedsrvlogin 
    @rmtsrvname = '[servername].database.windows.net',   
    @useself = 'FALSE', 
    @locallogin=NULL,
    @rmtuser = 'username',
    @rmtpassword = 'password'
GO

这确实在我的环境中创建了一个链接服务器,但是它没有连接到我指定的目录(FCS)。由于某种原因,它连接到默认值。有什么我做错了吗

4

2 回答 2

1

下面是一个简单示例,说明如何使用分布式查询连接到 Azure SQL 数据库:

-- Configure the linked server  
-- Add one Azure SQL DB as Linked Server  
EXEC sp_addlinkedserver  
  @server='myLinkedServer', -- here you can specify the name of the linked server  
  @srvproduct='',       
  @provider='sqlncli', -- using SQL Server Native Client  
  @datasrc='myServer.database.windows.net',   -- add here your server name  
  @location='',  
  @provstr='',  
  @catalog='myDatabase'  -- add here your database name as initial catalog (you cannot connect to the master database)  

-- Add credentials and options to this linked server  
EXEC sp_addlinkedsrvlogin  
  @rmtsrvname = 'myLinkedServer',  
  @useself = 'false',  
  @rmtuser = 'myLogin',             -- add here your login on Azure DB  
  @rmtpassword = 'myPassword' -- add here your password on Azure DB  

EXEC sp_serveroption 'myLinkedServer', 'rpc out', true;  

-- Now you can use the linked server to execute 4-part queries  
-- You can create a new table in the Azure DB  
EXEC ('CREATE TABLE t1tutut2(col1 int not null CONSTRAINT PK_col1 PRIMARY KEY CLUSTERED (col1) )') at myLinkedServer  
-- Insert data from your local SQL Server  
EXEC ('INSERT INTO t1tutut2 VALUES(1),(2),(3)') at myLinkedServer  

-- Query the data using 4-part names  
SELECT * FROM myLinkedServer.myDatabase.dbo.myTable

请按照官方示例重新测试。

参考:添加 Azure SQL 数据库作为链接服务器,用于云和本地数据库上的分布式查询

希望这可以帮助。

于 2019-10-31T02:40:02.497 回答
0

您正在使用@server,因为您应该使用@datasrc。@server 只是 SQL Server(本地)实例上链接服务器的名称,而 @datasrc 应该是 Azure SQL 数据库逻辑服务器的名称。

在此处输入图像描述

请阅读本文以获取有关如何创建链接服务器的完整示例。

于 2019-10-30T12:43:45.127 回答