2016-11-22 155 views
3

我想在本地複製生產環境,生產數據庫使用鏈接的服務器。我已經能夠創建localdb的多個實例;有可能在localdb實例之間創建一個鏈接服務器?如果沒有,我還有哪些其他選項可用(理想情況下無需使用完整的sql實例)。Localdb鏈接的服務器

+0

@馬特是否與該的LocalDB專門的工作?我似乎無法在我創建的實例之間進行通信。 – Dave

回答

1

不確定這是否是不好的形式來回答你自己的問題,但如果其他人在未來有相同的問題,事實證明這是可能的,非常簡單。一旦你創建新的LocalDB實例,使用:

USE master 

IF EXISTS(SELECT * from sys.servers WHERE name = N'{serverName}') 
BEGIN 
    DECLARE @serverId INT 
    SELECT @serverId = server_id FROM sys.servers WHERE name = N'{serverName}' 
    IF EXISTS(SELECT * FROM sys.linked_logins WHERE server_id = @serverId) 
    BEGIN 
     EXEC sp_droplinkedsrvlogin '{serverName}', null 
    END 

    EXEC sp_dropserver '{serverName}' 
END 

EXEC sp_addlinkedserver  
    @server=N'{serverName}', 
    @provider=N'SQLNCLI', 
    @srvproduct=N'', 
    @datasrc=N'{dataSource}'; 
EXEC sp_addlinkedsrvlogin 
    @rmtsrvname=N'{serverName}', 
    @useself='true' 
2

爲了擴大在Dave的自動應答一點點......

如果遠程數據庫尚未連接到其背景呢,將需要在sp_addlinked服務器的提供程序字符串參數中包含其他連接詳細信息。

EXEC sp_addlinkedserver  
    @server=N'{serverName}', 
    @provider=N'SQLNCLI', 
    @srvproduct=N'', 
    @datasrc=N'{dataSource}' 
    @provstr=N'{providerString}'; 

在我來說,我使用:

{dataSource} = (LocalDB)\MSSQLLocalDB 

{providerString} = AttachDbFileName=C:\Temp\Test.mdf;Integrated Security=True