SQL クエリを編集するときに、SQL 管理者は後で標準 SQL ユーザーが編集できるパラメーターを作成できます。

パラメーターを作成するには通常どおり SQL クエリを入力しますが、@paramName を置き換えて paramName という名前のパラメーターを作成します。その後、パラメーターは [Parameters] グリッドで選択して編集できます。 

Parameter named @pAccType created in the Parameters grid

これらのパラメーターは複数の異なるデータ ソースから設定できます。

SQL レポートで単一の静的値を使用するには、値を直接入力します。

Excel 範囲からテーブル又はスライサーを制御するには、範囲ボタンを選択してから範囲を選択します。

表示されるダイアログで範囲を選択すると、範囲参照がパラメーター グリッドに表示されます。

既存のスライサーを選択することも、新しいスライサーを作成することもできます。

ワークブック内にスライサーがすでに存在する場合は、[Edit Parameters] のドロップダウン メニューから直接スライサーを選択できます。

新しいスライサーを作成する方法は以下のとおりです。

  1. [Edit Parameters] で [Add new slicer] を選択します。
  2. 公開されているスライサー クエリを選択します (SQL 管理者の場合はクエリを設計)。
  3. [OK] を選択すると、該当する場合は任意のパラメーターを選択し、新しいスライサーの場所を選択できます。

パラメーターに複数の値を渡すことができます。これを行うには、[Multi-Value] チェックボックスをオンにし、Excel 範囲と複数選択スライサーのいずれかを選択します。

IN 句に渡すパラメーターは一つだけにする必要があります。パラメーターはクエリの実行時に展開されます。

Example of a query using the IN clause

テーブル変数をストアド プロシージャに渡して、複数のパラメーターを一度に送信できます。これを行うには、クエリ デザイナーで変数 mutivalue タイプを「Table Parameter」に設定します。

この機能では、データベースで以下のタイプが使用可能であることを前提としています。このスクリプトは DBA によって実行する必要がある場合があります。

create type dbo.XL3ParameterTable as Table( ParameterValue nvarchar(100) );

ストアド プロシージャはこのタイプのパラメーターを受け取ります。パラメーターはテキストになります。数値が必要な場合はストアド プロシージャ内で変換できます。

ストアド プロシージャは次のようになります。

CREATE PROCEDURE [dbo].[myProc] -- Add the parameters for the stored procedure here @theIDs as dbo.XL3ParameterTable readonly AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements.SET NOCOUNT ON; -- Insert statements for procedure here SELECT * from [dbo].[MyTable] a join @theIDs b on a.KeyID = b.ParameterValue END