2016-11-22 9 views
3

私は実稼働環境をローカルに複製しようとしており、本番データベースはリンクサーバーを使用しています。私はlocaldbの複数のインスタンスを作成することができました。 localdbインスタンス間にリンクサーバーを作成することは可能ですか?そうでない場合は、他のどのオプションを使用できますか(完全SQLインスタンスを使用する必要はありません)。Localdb linked servers

+0

@Mattは、具体的localdbでその仕事をしていますか?私は、作成したインスタンス間でやり取りできないように見えます。 – Dave

答えて

1

あなた自身の質問に答えるのが悪いのかどうかは分かりませんが、将来誰かが同じ問題を抱えている場合は、それは可能であり、かなり簡単です。 、Daveの自動応答に少しを展開するには

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

...

リモート・データベースがまだそのインスタンスにアタッチされていない場合:あなたがlocaldbの新しいインスタンスを作成したら、これを使用しますsp_addlinkedサーバーのProvider String引数に追加の接続の詳細を含める必要があります。私の場合は

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