ストアド プロシージャの作成

ストアド プロシージャを使用するには、これを共通言語ランタイム (CLR) クラスまたはコンポーネント オブジェクト モデル (COM) クラスに関連付ける必要があります。クラスはサーバーにインストールし (通常は Microsoft ActiveX® ダイナミック リンク ライブラリ (DLL) の形式)、サーバーまたは Analysis Services のデータベースにアセンブリとして登録する必要があります。

ストアド プロシージャはサーバーまたはデータベースに登録されています。サーバーのストアド プロシージャは、どのクエリ コンテキストからでも呼び出すことができます。データベースのストアド プロシージャは、データベース コンテキストが、ストアド プロシージャが定義されているデータベースの場合にのみアクセスできます。あるアセンブリの関数が別のアセンブリの関数を呼び出す場合は、両方のアセンブリを同じコンテキスト (サーバーまたはデータベース) に登録する必要があります。サーバー、またはサーバーに配置されている Microsoft SQL Server Analysis Services データベースの場合は、SQL Server Management Studio を使用してアセンブリを登録できます。Analysis Services プロジェクトの場合は、Analysis Services デザイナーを使用してプロジェクトにアセンブリを登録できます。

セキュリティに関する注意セキュリティに関する注意

COM アセンブリにより、セキュリティ上のリスクが生じる可能性があります。このリスクやその他の考慮事項により、SQL Server 2008 Analysis Services (SSAS) では、COM アセンブリが推奨されていません。COM アセンブリは、今後のリリースではサポートされない可能性があります。

サーバー アセンブリの登録

SQL Server Management Studio のオブジェクト エクスプローラーで、サーバー アセンブリは Analysis Services のインスタンスの Assemblies フォルダーに一覧表示されます。サーバー アセンブリには .NET (CLR) アセンブリと COM ライブラリの両方を含めることができます。

サーバー アセンブリを作成するには

  1. オブジェクト エクスプローラーで Analysis Services のインスタンスを展開し、[アセンブリ] フォルダーを右クリックして [新しいアセンブリ] をクリックします。**[サーバー アセンブリの登録]**ダイアログ ボックスが表示されます。

  2. [種類] でアセンブリの種類を指定します。

    • マネージ コード (CLR) DLL の場合は、.NET アセンブリを指定します。

    • ネイティブ コード (COM) DLL の場合は、COM DLL を指定します。

  3. [ファイル名] の場合は、ストアド プロシージャを含んでいる DLL を指定します。

  4. [アセンブリ名] の場合は、アセンブリの名前を指定します。

  5. これがストアド プロシージャのデバッグに使用するライブラリのデバッグ ビルドの場合は、[デバッグ情報を含める] チェック ボックスをオンにします。ストアド プロシージャのデバッグの詳細については、「デバッグ系のストアド プロシージャ」を参照してください。

  6. [OK] をクリックして直ちにアセンブリを登録するか、ダイアログ ボックスのツール バーで [スクリプト] メニューのコマンドをクリックして、登録操作をクエリ ウィンドウ、ファイル、またはクリップボードに記述します。

サーバー アセンブリを登録した後、オブジェクト エクスプローラーでアセンブリを右クリックし、[プロパティ] をクリックします。

サーバーへのデータベース アセンブリの登録

SQL Server Management Studio のオブジェクト エクスプローラーで、データベース アセンブリは Analysis Services データベースの Assemblies フォルダーに一覧表示されます。データベース アセンブリには .NET (CLR) アセンブリと COM ライブラリの両方を含めることができます。

サーバーでデータベース アセンブリを作成するには

  1. オブジェクト エクスプローラーで Analysis Services データベースのインスタンスを展開し、[Assemblies] フォルダーを右クリックして [新しいアセンブリ] をクリックします。**[データベース アセンブリの登録]**ダイアログ ボックスが表示されます。

  2. [種類] でアセンブリの種類を指定します。

    • マネージ コード (CLR) DLL の場合は、.NET アセンブリを指定します。

    • ネイティブ コード (COM) DLL の場合は、COM DLL を指定します。

  3. [ファイル名] の場合は、ストアド プロシージャを含んでいる DLL を指定します。

  4. [アセンブリ名] の場合は、アセンブリの名前を指定します。

  5. これがストアド プロシージャのデバッグに使用するライブラリのデバッグ ビルドの場合は、[デバッグ情報を含める] チェック ボックスをオンにします。ストアド プロシージャのデバッグの詳細については、「デバッグ系のストアド プロシージャ」を参照してください。

  6. [OK] をクリックして直ちにアセンブリを登録するか、ダイアログ ボックスのツール バーで [スクリプト] メニューのコマンドをクリックして、登録操作をクエリ ウィンドウ、ファイル、またはクリップボードに記述します。

データベース アセンブリを登録した後、オブジェクト エクスプローラーでアセンブリを右クリックし、[プロパティ] をクリックします。

プロジェクトへのデータベース アセンブリの登録

Business Intelligence Development Studio のソリューション エクスプローラーで、データベース アセンブリは Analysis Services プロジェクトの Assemblies フォルダーに一覧表示されます。データベース アセンブリには .NET (CLR) アセンブリと COM ライブラリの両方を含めることができます。

Analysis Services プロジェクトにデータベース アセンブリを作成するには

  1. オブジェクト エクスプローラーで Analysis Services データベースのインスタンスを展開し、[アセンブリ] フォルダーを右クリックして [新しいアセンブリ参照] をクリックします。[参照の追加] ダイアログ ボックスが表示されます。[参照の追加] ダイアログ ボックスの [.NET] タブには既存の .NET (CLR) アセンブリが一覧表示され、[プロジェクト] タブにはプロジェクトが一覧表示されます。

  2. 既存のコンポーネントまたはプロジェクトをクリックし、[追加] をクリックしてそれを Analysis Services プロジェクトに追加できます。参照を COM DLL に追加するには、[参照] タブをクリックしてファイルを見つけます。[選択されたプロジェクトとコンポーネント] 一覧に、プロジェクトに追加する各コンポーネントの名前、種類、バージョン、および場所が表示されます。

  3. 追加するコンポーネントを選択したら、[OK] をクリックして Analysis Services プロジェクトに追加します。

アセンブリのスクリプト形式

.NET アセンブリの登録は簡単です。.NET アセンブリは次の形式を使用してバイナリ形式でデータベースに追加されます。

<Create>
   <ObjectDefinition>
      <Assembly>
         <Files>
            <File>
               <Name>filename</Name>
               <Type>filetype</Type>
               <Data>
                  <Block>binarydatablock</Block>
                  <Block>binarydatablock</Block>
                  ...
               </Data>
            </File>
         </Files>
         <PermissionSet>PermissionSet</PermissionSet>
      </Assembly>
   <ObjectDefinition>
</Create>