名前付き計算は、計算列として表される SQL 式です。 この式は、テーブル内の列として表示され、動作します。 名前付き計算を使用すると、基になるデータ ソースのテーブルまたはビューを変更することなく、データ ソース ビュー内の既存のテーブルまたはビューのリレーショナル スキーマを拡張できます。 次の例を考えてみましょう。
ファクト テーブル内の複数の列から派生した名前付き計算を 1 つ作成します (たとえば、税率に販売価格を乗算して税額を作成するなど)。
ディメンション メンバーのユーザー フレンドリ名を作成します。
クエリ パフォーマンスの向上として、キューブに計算メンバーを作成する代わりに、DSV に名前付き計算を作成します。 名前付き計算は処理中に計算されますが、計算されるメンバーはクエリ時に計算されます。
名前付き計算の作成
注
名前付きクエリに名前付き計算を追加したり、名前付き計算を含むテーブルに基づいて名前付きクエリを作成したりすることはできません。
名前付き計算を作成するときは、名前、SQL 式、および必要に応じて計算の説明を指定します。 SQL 式は、データ ソース ビュー内の他のテーブルを参照できます。 名前付き計算が定義されると、名前付き計算の式がデータ ソースのプロバイダーに送信され、名前付き計算を定義する式が <Expression>
に含まれる次の SQL ステートメントとして検証されます。
SELECT
<Table Name in Data Source>.*,
<Expression> AS <Column Name>
FROM
<Table Name in Data Source> AS <Table Name in Data Source View>
列のデータ型は、式によって返されるスカラー値のデータ型によって決まります。 プロバイダーが式でエラーを見つけられない場合は、列がテーブルに追加されます。
式で参照される列は修飾しないでください。また、テーブル名でのみ修飾する必要があります。 たとえば、テーブル内の SaleAmount 列を参照するには、 SaleAmount
または Sales.SaleAmount
は有効ですが、 dbo.Sales.SaleAmount
はエラーを生成します。
式は自動的に括弧で囲まれません。 したがって、SELECT ステートメントなどの式にかっこが必要な場合は、[ 式 ] ボックスにかっこを入力する必要があります。 たとえば、次の式は、丸かっこを入力した場合にのみ有効です。
(SELECT Description FROM Categories WHERE Categories.CategoryID = CategoryID)
名前付き計算を追加または編集する
SQL Server Data Tools (SSDT) で、プロジェクトを開くか、名前付き計算を定義するデータ ソース ビューを含むデータベースに接続します。
ソリューション エクスプローラーで、[ データ ソース ビュー ] フォルダーを展開し、データ ソース ビューをダブルクリックします。
[テーブル] ペインまたは [ダイアグラム] ペインで、名前付き計算を定義するテーブルを右クリックし、[新しい名前付き計算] をクリックします。 属性ではなく、テーブル名を右クリックしてください。 メニューは次のようになります。
注
テーブルまたはビューを見つけるには、[データ ソース ビュー] メニューをクリックするか、[テーブル] ペインまたは [ダイアグラム] ペインの開いている領域を右クリックすることで、[テーブルの検索] オプションを使用できます。
[ 名前付き計算の作成 ] ダイアログ ボックスで、次の操作を行います。
[ 列名 ] テキスト ボックスに、新しい列の名前を入力します。
[ 説明 ] テキスト ボックスに、新しい列の説明を入力します。
[ 式 ] テキスト ボックスに、データ プロバイダーに適した SQL 言語の新しい列の内容を生成する式を入力します。
OK をクリックします。
名前付き計算列は、データ ソース ビュー テーブルの最後の列として表示されます。 電卓記号は、列に名前付き計算が含まれていることを示します。
名前付き計算を削除する
名前付き計算を削除しようとすると、削除によって無効になるプロジェクトまたはデータベースで定義されているオブジェクトの一覧が表示されます。 計算を削除する前に、一覧をよく確認してください。