識別子 (MDX)
識別子は、Microsoft SQL Server Analysis Services オブジェクトの名前です。 すべての Analysis Services オブジェクトに識別子を付けることができ、どのオブジェクトにも識別子が必要です。 これには、キューブ、ディメンション、階層、レベル、メンバーなどが含まれます。 多次元式 (MDX) ステートメントの中でオブジェクトを参照するには、オブジェクトの識別子を使用します。
オブジェクトの名前を付ける方法に応じて、オブジェクト識別子の識別子は、標準識別子または区切られた識別子になります。
注 |
---|
標準識別子および区切られた識別子は、文字、記号 (_、@、または #)、および数字を含む 1 ~ 100 個の文字で構成されます。 |
標準識別子の使用
標準識別子は、以下に挙げる標準識別子の形式の規則に従うオブジェクト名です。 標準識別子では区切り記号は任意に使用できます。
標準識別子の形式の規則
最初の文字が次のいずれかである必要があります。
Unicode Standard 2.0 で定義されている文字。 Unicode の文字定義には、各国言語の文字のほかに、ラテン文字 a ~ z と A ~ Z も含まれます。
アンダースコア (_)。
名前の先頭以外では、次の文字を使用できます。
Unicode 規格 2.0 で定義されている文字。
Basic Latin スクリプトまたはその他の各国スクリプトの 10 進数。
アンダースコア (_)。
MDX の予約されたキーワードを識別子にすることはできません。 MDX の予約されたキーワードには大文字小文字の区別がありません。 詳細については、「予約されたキーワード (MDX 構文)」を参照してください。
空白および特殊文字を埋め込むことはできません。
標準識別子の例
以下の MDX ステートメントで、Measures、Product、および Style 識別子は、標準識別子の形式の規則に従っています。 これらの標準識別子に区切り記号は不要です。
SELECT Measures.MEMBERS ON COLUMNS,
Product.Style.CHILDREN ON ROWS
FROM [Adventure Works]
必須ではありませんが、標準識別子に区切り記号を使用することもできます。 以下の MDX ステートメントの場合、Measures、Product、および Style 標準識別子は、角かっこで正しく区切られています。
SELECT [Measures].MEMBERS ON COLUMNS,
[Product].[Style].CHILDREN ON ROWS
FROM [Adventure Works]
区切られた識別子の使用
標準識別子の形式の規則に従わない識別子は、必ず角かっこ ([]) で区切る必要があります。
注 |
---|
区切り記号は識別子のみに使用します。 区切り記号は、Analysis Services での予約の有無に関係なくキーワードには使用できません。 |
区切られた識別子は以下の場合に使用します。
オブジェクトの名前または名前の一部に予約語を使用する場合。
予約されたキーワードはオブジェクト名として使用しないことをお勧めします。 以前のバージョンの Analysis Services からアップグレードしたデータベースの場合、識別子の中に、以前のバージョンでは予約語でなかったのに、SQL Server Analysis Services で予約語になったものが含まれている可能性があります。 オブジェクトの識別子を変更できるようになるまでの間は、区切られた識別子を使ってオブジェクトを参照できます。
オブジェクトの名前に、修飾された識別子として示されていない文字を使用する場合。
Analysis Services では、区切られた識別子に、現在のコード ページ内にある任意の文字を使用できます。 しかし、むやみにオブジェクト名に特殊文字を使用すると、MDX ステートメントやスクリプトが読みにくくなり、メンテナンスが困難になります。
区切られた識別子の形式の規則
区切られた識別子の本体は、区切り記号を含め、現在のコード ページ内にある文字の任意の組み合わせで構成されます。 区切られた識別子の本体に区切り記号が含まれている場合、特殊な処理が必要です。
識別子の本体に左角かっこ ([) しか含まれていない場合、追加の処理は不要です。
識別子の本体に右角かっこ (]) が含まれている場合、右角かっこを 2 つ (]]) 指定する必要があります。
区切られた識別子の例
次の MDX ステートメントの例では、Sales Volume、Sales Cube、および select は区切られた識別子です。
-- The [Sales Volume] and [Sales Cube] identifiers contain a space.
SELECT Measures.[Sales Volume]
FROM [Sales Cube]
WHERE Product.[select]
-- The [select] identifier is a reserved keyword.
次の例のオブジェクトの名前は Total Profit [Domestic] です。 このオブジェクトを参照するには、以下の区切られた識別子を使用する必要があります。
[Total Profit [Domestic]]]
Domestic の前の左角かっこを変更せずに、区切られた識別子を作成できることに注意してください。 しかし、Domestic の後の右角かっこは、2 つの右角かっこに置き換える必要があります。
複数の部分に区切られた識別子
修飾されたオブジェクト名を使用する際に、場合によってはオブジェクト名を構成している複数の識別子を区切る必要があります。 たとえば、次のコードの Front Brakes 識別子は区切らなければなりません。
SELECT [Measures].MEMBERS ON COLUMNS,
[Product].[Product].[Front Brakes] ON ROWS
FROM [Adventure Works]
さらに、上の例の場合、複数の識別子を区切るようすを示すために Measures 識別子が区切られています。