SMO でのリンク サーバーの使用

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

リンク サーバーはリモート サーバー上の OLE DB データ ソースを表します。 リモート OLE DB データ ソースは、 オブジェクトを使用してSQL ServerのインスタンスにLinkedServerリンクされます。

リモート データベース サーバーは、OLE DB プロバイダーを使用して Microsoft SQL Serverの現在のインスタンスにリンクできます。 SMO では、リンク サーバーは LinkedServer オブジェクトで表現されます。 LinkedServerLogins プロパティは LinkedServerLogin オブジェクトのコレクションを参照します。 これらのオブジェクトには、リンク サーバーとの接続の確立に必要となるログオン資格情報が格納されます。

OLE DB プロバイダー

SMO では、インストールされた OLE DB プロバイダーは OleDbProviderSettings オブジェクトのコレクションで表されます。

次のコード例では、アプリケーションを作成するプログラミング環境、プログラミング テンプレート、およびプログラミング言語を選択する必要があります。 詳細については、「 Visual Studio .NET で Visual C# SMO プロジェクトを作成する」を参照してください。

このコード例では、 オブジェクトを使用して、SQL Server OLE DB の異種データ ソースへのリンクを作成する方法をLinkedServer示します。 製品名として SQL Server を指定すると、SQL Serverの公式 OLE DB プロバイダーである SQL Server クライアント OLE DB プロバイダーを使用して、リンク サーバー上のデータにアクセスできます。

//Connect to the local, default instance of SQL Server.   
{   
   Server srv = new Server();   
   //Create a linked server.   
   LinkedServer lsrv = default(LinkedServer);   
   lsrv = new LinkedServer(srv, "OLEDBSRV");   
   //When the product name is SQL Server the remaining properties are   
   //not required to be set.   
   lsrv.ProductName = "SQL Server";   
   lsrv.Create();   
}   

このコード例では、 オブジェクトを使用して、SQL Server OLE DB の異種データ ソースへのリンクを作成する方法をLinkedServer示します。 製品名として SQL Server を指定すると、SQL Serverの公式 OLE DB プロバイダーである SQL Server クライアント OLE DB プロバイダーを使用して、リンク サーバー上のデータにアクセスできます。

#Get a server object which corresponds to the default instance  
$svr = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server  
  
#Create a linked server object which corresponds to an OLEDB type of SQL Server product  
$lsvr = New-Object -TypeName Microsoft.SqlServer.Management.SMO.LinkedServer -argumentlist $svr,"OLEDBSRV"  
  
#When the product name is SQL Server the remaining properties are not required to be set.   
$lsvr.ProductName = "SQL Server"  
  
#Create the Database Object  
$lsvr.Create()