リモート接続、データリンク、オブジェクトエクスプローラー:T-SQLで別のSQLサーバーに接続するその他の方法
T-SQL構文を使用して別のSQLサーバーに接続する方法
リンクサーバーを使用する
リンクサーバーは、別のSQLサーバーへの接続を抽象化する仮想サーバーです。リンクサーバーを作成すると、そのサーバー上のデータベースに対して、ローカルサーバー上のデータベースと同じようにクエリを実行することができます。
-
リンクサーバーのプロパティ ダイアログボックスで、以下の情報を指定します。
- リンクサーバー名: 接続するサーバーの名前
- サーバーの種類: 接続先のサーバーの種類 (SQL Server、Oracleなど)
- プロバイダー: 接続に使用されるプロバイダー (SQL Server Native Clientなど)
- 接続: 接続先のサーバーのインスタンス名とデータベース名
リンクサーバーを使用してクエリを実行する手順
- SSMS で、クエリを実行したいデータベースを選択します。
- クエリエディターで、以下の構文を使用してクエリを実行します。
SELECT *
FROM [リンクサーバー名].[データベース名].[スキーマ名].[テーブル名]
例:
SELECT *
FROM [SRV2].[AdventureWorks2019].[dbo].[Customers]
このクエリは、SRV2
という名前のサーバー上の AdventureWorks2019
データベースの dbo
スキーマにある Customers
テーブルからすべてのデータを取得します。
OPENQUERY は、別のサーバー上のデータベースに対して直接クエリを実行する関数です。OPENQUERY を使用すると、リンクサーバーを作成することなく、別のサーバー上のデータにアクセスすることができます。
OPENQUERY を使用してクエリを実行する手順
SELECT *
FROM OPENQUERY([接続文字列], 'SELECT * FROM [データベース名].[スキーマ名].[テーブル名]')
SELECT *
FROM OPENQUERY('Data Source=SRV2;Initial Catalog=AdventureWorks2019', 'SELECT * FROM [dbo].[Customers]')
- 複数のサーバーに頻繁に接続する必要がある場合は、リンクサーバーを使用すると便利です。
- 偶発的に別のサーバー上のデータにアクセスする必要がある場合は、OPENQUERY を使用すると便利です。
リンクサーバーを使用する
-- リンクサーバーを作成する
EXEC sp_addlinkedserver
@server_name = 'SRV2',
@provider_name = 'SQLNCLI11',
@data_source = 'SRV2',
@catalog_name = 'AdventureWorks2019';
-- リンクサーバーを使用してクエリを実行する
SELECT *
FROM [SRV2].[AdventureWorks2019].[dbo].[Customers]
OPENQUERYを使用する
-- OPENQUERYを使用してクエリを実行する
SELECT *
FROM OPENQUERY('Data Source=SRV2;Initial Catalog=AdventureWorks2019', 'SELECT * FROM [dbo].[Customers]')
注意事項
- 上記のサンプルコードは、SQL Server 2019 を使用しています。他のバージョンの SQL Server を使用している場合は、構文が異なる場合があります。
- 接続先のサーバーにアクセスできる権限を持っていることを確認してください。
- データベース名、スキーマ名、テーブル名などは、環境に合わせて変更してください。
T-SQLを使用して別のSQLサーバーに接続するその他の方法
リモート接続を使用する
リモート接続は、SQL Server Management Studio (SSMS) を使用して別のサーバー上のデータベースに接続する方法です。リモート接続を使用すると、ローカルサーバー上のデータベースと同じように、別のサーバー上のデータベースを管理することができます。
-
- 認証: 接続に使用される認証方法 (Windows 認証、SQL Server 認証など)
データリンクを使用する
データリンクは、別のサーバー上のデータベースへの接続情報を保存するためのファイルです。データリンクを作成すると、SSMS やその他のアプリケーションから簡単に接続することができます。
- SSMS で、オブジェクトエクスプローラー > データ接続 を展開します。
- データソースの選択 ページで、SQL Server を選択し、次へ をクリックします。
- サーバー名 ページで、接続するサーバーの名前とデータベース名を選択します。
- 認証 ページで、接続に使用される認証方法を選択します。
- 完了 ページで、データリンクの名前と保存場所を指定し、OK をクリックします。
- クエリ エディター で、標準 ツールバーの 接続 ドロップダウンリストから作成したデータリンクを選択します。
SSMS のオブジェクトエクスプローラーを使用して、別のサーバー上のデータベースに接続することもできます。
オブジェクトエクスプローラーを使用して接続する手順
- 頻繁に別のサーバーに接続する必要がある場合は、リモート接続またはデータリンクを使用すると便利です。
上記の情報は参考用であり、予告なく変更される場合があります。
sql-server t-sql stored-procedures