SQL Server について質問があります。別のサーバーにデータをコピーするために別の SQL Server にアクセスするストアド プロシージャがあります。
これは可能ですか?はいの場合: どうすればこれを行うことができますか?
サンプルが見つかりません。
SQL Server 2008 R2 を使用しています
SQL Server について質問があります。別のサーバーにデータをコピーするために別の SQL Server にアクセスするストアド プロシージャがあります。
これは可能ですか?はいの場合: どうすればこれを行うことができますか?
サンプルが見つかりません。
SQL Server 2008 R2 を使用しています
ここに例があります...
最初のサーバーに接続し、このスクリプトを実行します
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 StudioのServer Objects - Linked Servers - LINKTOBを見てください。LINKTOBのプロパティを開き、[セキュリティ] タブを確認します。