1

SQL Server について質問があります。別のサーバーにデータをコピーするために別の SQL Server にアクセスするストアド プロシージャがあります。

これは可能ですか?はいの場合: どうすればこれを行うことができますか?

サンプルが見つかりません。

SQL Server 2008 R2 を使用しています

4

2 に答える 2

5

ここに例があります...

最初のサーバーに接続し、このスクリプトを実行します

CREATE DATABASE [DatabaseA];
GO
CREATE TABLE [DatabaseA].[dbo].[TableA] (Id int, ValueA varchar(10));
INSERT INTO [DatabaseA].[dbo].[TableA] VALUES(1,'a'),(2,'b'),(3,'c');

次に、2番目のサーバーに接続し、これを実行します

CREATE DATABASE [DatabaseB];
GO
CREATE TABLE [DatabaseB].dbo.[TableB] (Id int, ValueB varchar(10));
INSERT INTO [DatabaseB].dbo.[TableB] VALUES(1,'A'),(2,'B'),(3,'B');

最初のサーバーへの接続では、次のように 2 番目のサーバーへのリンクを作成します。

EXEC master.dbo.sp_addlinkedserver 
    @server = N'LINKTOB'
    ,@srvproduct=N'B'
    ,@provider=N'SQLOLEDB'
    ,@datasrc=N'<NAME OF SERVER CONTAINING DatabaseB>';

環境に合わせて@datasrcの値を変更する必要があることに注意してください。

これで、最初のサーバーで、同じクエリで 2 つの別々のサーバーからのデータを使用して、このようなクエリを実行できます。

SELECT
    a.Id
    ,a.ValueA
    ,b.ValueB
FROM
    [DatabaseA].[dbo].[TableA] AS a
    INNER JOIN [LINKTOB].[DatabaseB].[dbo].[TableB] AS b ON a.Id = b.Id

結果は次のようになります

クエリ結果のスクリーンショット

両方のサーバーが同じセキュリティ設定の同じドメイン内にある場合、それ以上変更しなくてもすべてが機能するはずです。そうでない場合は、Management StudioServer Objects - Linked Servers - LINKTOBを見てください。LINKTOBのプロパティを開き、[セキュリティ] タブを確認します。

于 2013-05-31T22:05:42.327 に答える