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

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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

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

重要

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

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

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

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

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

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

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

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

  3. [ ファイル名] には、ストアド プロシージャを含む DLL を指定します。

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

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

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

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

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

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

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

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

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

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

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

  3. [ ファイル名] には、ストアド プロシージャを含む DLL を指定します。

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

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

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

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

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

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

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

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

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

  3. 追加するコンポーネントの選択が完了したら、[OK] をクリックして、SQL Server 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>  

参照

多次元モデルのアセンブリの管理
ストアド プロシージャの定義