複数のサーバーに対してステートメントを同時に実行する
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
この記事では、ローカル サーバー グループ、中央管理サーバー、1 つ以上のサーバー グループ、およびグループ内の 1 つ以上の登録済みサーバーを作成し、完全なグループに対してクエリを実行して、SQL Server で複数のサーバーに対して同時にクエリを実行する方法について説明します。
クエリによって返される結果は、1 つの結果ペインに結合することも、個別の結果ペインで返すことができます。 結果セットには、サーバー名と、各サーバーのクエリで使用されるログインの追加列を含めることができます。 中央管理サーバーと下位サーバーは、Windows 認証のみを使用して登録できます。 ローカル サーバー グループ内のサーバーは、Windows 認証または SQL Server 認証を使用して登録できます。
次の手順を実行する前に、中央管理サーバーとサーバー グループを作成します。 詳細については、「中央管理サーバーとサーバー グループの作成 (SQL Server Management Studio)」を参照してください。
権限
中央管理サーバーによって維持される接続はユーザーのコンテキストで実行されるため、Windows 認証を使用すると、登録済みサーバーに対する有効なアクセス許可が異なる場合があります。 たとえば、ユーザーは、SQL Server A のインスタンスで固定サーバー ロール sysadmin のメンバーである可能性がありますが、SQL Server B のインスタンスに対するアクセス許可は制限されています。
複数の構成ターゲットに対してステートメントを同時に実行する
SQL Server Management Studio の [表示] メニューの [登録済みサーバー] 選択します。
中央管理サーバーを展開し、サーバーグループを右クリックして、[接続]にカーソルを合わせてから、[新しいクエリ]を選択します。
クエリ エディターで、次のような Transact-SQL ステートメントを入力して実行します。
USE master GO SELECT * FROM sys.databases; GO
既定では、結果ペインは、サーバー グループ内のすべてのサーバーからのクエリ結果を結合します。
マルチサーバーの結果オプションを変更する
Management Studio の [ツール] メニューの [オプション] 選択します。
クエリ結果 を展開し、SQL Server を展開して、マルチサーバーの結果 を選択します。
[マルチサーバー結果] ページで、望むオプション設定を指定し、[OK] を選択します。