ストアド プロシージャの作成
ストアド プロシージャを使用するには、これを共通言語ランタイム (CLR) クラスまたはコンポーネント オブジェクト モデル (COM) クラスに関連付ける必要があります。クラスはサーバーにインストールし (通常は Microsoft ActiveX® ダイナミック リンク ライブラリ (DLL) の形式)、サーバーまたは Analysis Services のデータベースにアセンブリとして登録する必要があります。
ストアド プロシージャはサーバーまたはデータベースに登録されています。サーバーのストアド プロシージャは、どのクエリ コンテキストからでも呼び出すことができます。データベースのストアド プロシージャは、データベース コンテキストが、ストアド プロシージャが定義されているデータベースの場合にのみアクセスできます。あるアセンブリの関数が別のアセンブリの関数を呼び出す場合は、両方のアセンブリを同じコンテキスト (サーバーまたはデータベース) に登録する必要があります。サーバー、またはサーバーに配置されている MicrosoftSQL ServerAnalysis 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 ライブラリの両方を含めることができます。
サーバー アセンブリを作成するには
オブジェクト エクスプローラで Analysis Services のインスタンスを展開し、[アセンブリ] フォルダを右クリックして [新しいアセンブリ] をクリックします。**[サーバー アセンブリの登録]**ダイアログ ボックスが表示されます。
[種類] でアセンブリの種類を指定します。
マネージ コード (CLR) DLL の場合は、.NET アセンブリを指定します。
ネイティブ コード (COM) DLL の場合は、COM DLL を指定します。
[ファイル名] の場合は、ストアド プロシージャを含んでいる DLL を指定します。
[アセンブリ名] の場合は、アセンブリの名前を指定します。
これがストアド プロシージャのデバッグに使用するライブラリのデバッグ ビルドの場合は、[デバッグ情報を含める] チェック ボックスをオンにします。ストアド プロシージャのデバッグの詳細については、「デバッグ系のストアド プロシージャ」を参照してください。
[OK] をクリックして直ちにアセンブリを登録するか、ダイアログ ボックスのツール バーで [スクリプト] メニューのコマンドをクリックして、登録操作をクエリ ウィンドウ、ファイル、またはクリップボードに記述します。
サーバー アセンブリを登録した後、オブジェクト エクスプローラでアセンブリを右クリックし、[プロパティ] をクリックします。
サーバーへのデータベース アセンブリの登録
SQL Server Management Studio のオブジェクト エクスプローラで、データベース アセンブリは Analysis Services データベースの Assemblies フォルダに一覧表示されます。データベース アセンブリには .NET (CLR) アセンブリと COM ライブラリの両方を含めることができます。
サーバーでデータベース アセンブリを作成するには
オブジェクト エクスプローラで Analysis Services データベースのインスタンスを展開し、[Assemblies] フォルダを右クリックして [新しいアセンブリ] をクリックします。**[データベース アセンブリの登録]**ダイアログ ボックスが表示されます。
[種類] でアセンブリの種類を指定します。
マネージ コード (CLR) DLL の場合は、.NET アセンブリを指定します。
ネイティブ コード (COM) DLL の場合は、COM DLL を指定します。
[ファイル名] の場合は、ストアド プロシージャを含んでいる DLL を指定します。
[アセンブリ名] の場合は、アセンブリの名前を指定します。
これがストアド プロシージャのデバッグに使用するライブラリのデバッグ ビルドの場合は、[デバッグ情報を含める] チェック ボックスをオンにします。ストアド プロシージャのデバッグの詳細については、「デバッグ系のストアド プロシージャ」を参照してください。
[OK] をクリックして直ちにアセンブリを登録するか、ダイアログ ボックスのツール バーで [スクリプト] メニューのコマンドをクリックして、登録操作をクエリ ウィンドウ、ファイル、またはクリップボードに記述します。
データベース アセンブリを登録した後、オブジェクト エクスプローラでアセンブリを右クリックし、[プロパティ] をクリックします。
プロジェクトへのデータベース アセンブリの登録
Business Intelligence Development Studio のソリューション エクスプローラで、データベース アセンブリは Analysis Services プロジェクトの Assemblies フォルダに一覧表示されます。データベース アセンブリには .NET (CLR) アセンブリと COM ライブラリの両方を含めることができます。
Analysis Services プロジェクトにデータベース アセンブリを作成するには
オブジェクト エクスプローラで Analysis Services データベースのインスタンスを展開し、[アセンブリ] フォルダを右クリックして [新しいアセンブリ参照] をクリックします。[参照の追加] ダイアログ ボックスが表示されます。[参照の追加] ダイアログ ボックスの [.NET] タブには既存の .NET (CLR) アセンブリが一覧表示され、[プロジェクト] タブにはプロジェクトが一覧表示されます。
既存のコンポーネントまたはプロジェクトをクリックし、[追加] をクリックしてそれを Analysis Services プロジェクトに追加できます。参照を COM DLL に追加するには、[参照] タブをクリックしてファイルを見つけます。[選択されたプロジェクトとコンポーネント] 一覧に、プロジェクトに追加する各コンポーネントの名前、種類、バージョン、および場所が表示されます。
追加するコンポーネントを選択したら、[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>