次の方法で共有


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

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric SQL Database

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

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

OLE DB プロバイダー

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

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

このコード例では、 LinkedServer オブジェクトを使用して SQL Server OLE DB の異種データ ソースへのリンクを作成する方法を示します。 製品名として 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();   
}   

このコード例では、 LinkedServer オブジェクトを使用して SQL Server OLE DB の異種データ ソースへのリンクを作成する方法を示します。 製品名として 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()