ストアド プロシージャのデザイン

ストアド プロシージャでは、管理オブジェクト モデルである分析管理オブジェクト (AMO) とクライアント指向のオブジェクト モデルである Microsoft ActiveX® Data Objects (Multidimensional) (ADO MD) の両方を使用できます。

ストアド プロシージャを呼び出すには、多次元式 (MDX) レベルで表示できるスコープ内 (サーバーまたはデータベース) に存在する必要があります。ただし、ストアド プロシージャを呼び出した後、そのスコープがその親のアクションに制限されることはありません。ストアド プロシージャは、サーバー上のどこでも変更を行うことができ、そのストアド プロシージャを呼び出すユーザー プロセスのセキュリティ制限と、そのストアド プロシージャが実行されるトランザクションの制限のみを受けます。

サーバー スコープ プロシージャは、サーバー上のすべてのコンテキストで使用できます。データベース スコープ ストアド プロシージャは、そのプロシージャが定義されているデータベースのデータベース コンテキストのみで表示されます。

他のすべての MDX 関数と同様に、ストアド プロシージャは MDX セッションを続行する前に解決する必要があります。ストアド プロシージャでは、実行中に MDX セッションがロックされるためです。ユーザーの操作があるまで MDX セッションを一時停止しておく特別な理由がある場合を除き、ユーザーの操作 (ダイアログ ボックスなど) は推奨されません。

依存アセンブリ

共通言語ランタイム (CLR) で検索できるようにするには、すべての依存アセンブリを Analysis Services のインスタンスに読み込む必要があります。Analysis Services ではメイン アセンブリと同じフォルダに依存アセンブリが保存されるので、そのようなアセンブリ内の関数に対するすべての関数参照は CLR によって自動的に解決されます。