CLR データベース オブジェクトの配置
配置は、完了したアプリケーションまたはモジュールを別のコンピューターにインストールし、実行するために配布するプロセスです。Microsoft Visual Studio を使用して、共通言語ランタイム (CLR) データベース オブジェクトを開発し、これらをテスト サーバーに配置することができます。また、Visual Studio ではなく Microsoft .NET Framework の再配布ファイルを使用して、マネージ データベース オブジェクトをコンパイルすることも可能です。コンパイルすると、CLR データベース オブジェクトを含むアセンブリを、Visual Studio または Transact-SQL ステートメントを使用して、テスト サーバーに配置することができます。Visual Studio .NET 2003 は、CLR 統合プログラミングまたは配置には使用できない点に注意してください。SQL Server には .NET Framework がプレインストールされていますが、Visual Studio .NET 2003 では .NET Framework 2.0 アセンブリを使用できません。
CLR メソッドをテスト サーバーでテストおよび検証すると、配置スクリプトを使用してこれらを実稼働サーバーに配布できます。配置スクリプトは手動で生成するか、SQL Server Management Studio を使用して生成することができます (後に示す手順を参照)。
SQL Server では、既定で CLR 統合機能は無効になっており、CLR アセンブリを使用するには、これを有効にする必要があります。詳細については、「CLR 統合の有効化」を参照してください。
注 |
---|
SQL Server 2005 以降、互換性レベルが "80" の SQL Server データベースでは、マネージ コードでユーザー定義型、ストアド プロシージャ、関数、集計、またはトリガーを作成することはできません。SQL Server のこれらの CLR 統合機能を使用するには、sp_dbcmptlevel (Transact-SQL) ストアド プロシージャを使用してデータベースの互換性レベルを "90" に設定する必要があります。 |
テスト サーバーへのアセンブリの配置
Visual Studio を使用し、CLR 関数、プロシージャ、トリガー、ユーザー定義型 (UDT)、またはユーザー定義集計 (UDA) を開発したり、これらをテスト サーバーに配置することができます。これらのマネージ データベース オブジェクトは、.NET Framework 再配布ファイルに含まれる csc.exe や vbc.exe などのコマンド ライン コンパイラによりコンパイルすることもできます。SQL Server のマネージ データベース オブジェクトを開発するのに、Visual Studio 統合開発環境は必要ありません。
すべてのコンパイラ エラーおよび警告が解決されていることを確認してください。これで、Visual Studio または Transact-SQL ステートメントを使用して、CLR ルーチンを含むアセンブリを SQL Server データベースに登録できます。
注 |
---|
Microsoft Visual Studio を使用してリモートで開発およびデバッグを行うには、SQL Server インスタンスで TCP/IP ネットワーク プロトコルを有効にする必要があります。サーバー上で TCP/IP プロトコルを有効にする方法の詳細については、「クライアント ネットワーク プロトコルの構成」を参照してください。 |
Visual Studio を使用してアセンブリを配置するには
[ビルド] メニューで [<プロジェクト名> のビルド] をクリックし、プロジェクトをビルドします。
アセンブリをテスト サーバーに配置する前に、すべてのビルド エラーおよび警告を解決します。
[ビルド] メニューで [配置] をクリックします。これで、SQL Server インスタンス内および SQL Server プロジェクトを最初に Visual Studio で作成したときに指定したデータベース内にアセンブリが登録されます。
Transact-SQL を使用してアセンブリを配置するには
.NET Framework に含まれるコマンド ライン コンパイラを使用して、ソース ファイルからアセンブリをコンパイルします。
Microsoft Visual C# ソース ファイルの場合は、次のコマンドを実行します。
csc /target:library C:\helloworld.cs
Microsoft Visual Basic ソース ファイルの場合は、次のコマンドを実行します。
vbc /target:library C:\helloworld.vb
これらのコマンドでは、/target オプションを使用してライブラリ DLL をビルドすることを指定し、Visual C# コンパイラまたは Visual Basic コンパイラを起動します。
アセンブリをテスト サーバーに配置する前に、すべてのビルド エラーおよび警告を解決します。
テスト サーバーで SQL Server Management Studio を開きます。適切なテスト データベース (AdventureWorks2008R2 など) に接続して、新しいクエリを作成します。
次の Transact-SQL をクエリに追加することにより、サーバーにアセンブリを作成します。
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE
- 次に、SQL Server のインスタンスに、プロシージャ、関数、集計、ユーザー定義型、またはトリガーを作成する必要があります。HelloWorld アセンブリに、Procedures クラスの HelloWorld という名前のメソッドが含まれている場合、次の Transact-SQL をクエリに追加して、SQL Server に hello というプロシージャを作成することができます。
CREATE PROCEDURE hello
AS
EXTERNAL NAME HelloWorld.Procedures.HelloWorld
SQL Server にさまざまな種類のマネージ データベース オブジェクトを作成する方法の詳細については、「CLR ユーザー定義関数」、「CLR ユーザー定義集計」、「CLR ユーザー定義型」、「CLR ストアド プロシージャ」、および「CLR トリガー」を参照してください。
実稼働サーバーへのアセンブリの配置
CLR データベース オブジェクトをテスト サーバーでテストおよび検証した後は、実稼働サーバーに配布できます。マネージ データベース オブジェクトのデバッグの詳細については、「CLR データベース オブジェクトのデバッグ」を参照してください。
マネージ データベース オブジェクトの配置は、通常のデータベース オブジェクト (テーブル、Transact-SQL ルーチンなど) の配置と似ています。CLR データベース オブジェクトを含むアセンブリは、配置スクリプトを使用して別のサーバーに配置できます。配置スクリプトは、Management Studio の "スクリプトの生成" 機能を使用して作成できます。配置スクリプトは、手動で作成することも、また、"スクリプトの生成" を使用して作成した後に手動で変更することもできます。配置スクリプトの作成後は、SQL Server の別のインスタンスでこれを実行し、マネージ データベース オブジェクトを配置することができます。
"スクリプトの生成" 機能を使用して配置スクリプトを生成するには
Management Studio を開き、配置するマネージ アセンブリまたはデータベース オブジェクトを登録する SQL Server インスタンスに接続します。
オブジェクト エクスプローラーで、[<サーバー名>] および [データベース] ツリーを展開します。マネージ データベース オブジェクトを登録するデータベースを右クリックし、[タスク]、[スクリプトの生成] の順にクリックします。スクリプト作成ウィザードが開きます。
一覧からデータベースを選択し、[次へ] をクリックします。
[スクリプト オプションの選択] ペインで、[次へ] をクリックするか、オプションを変更して [次へ] をクリックします。
[オブジェクトの種類を選択] ペインで、配置するデータベース オブジェクトの種類を選択します。[次へ] をクリックします。
[オブジェクトの種類を選択] ペインで選択したそれぞれのオブジェクトの種類に対し、[<種類>の選択] ペインが表示されます。このペインでは、指定したデータベースに登録されているデータベース オブジェクトの種類のすべてのインスタンスから、いずれかのオブジェクトを選択できます。1 つ以上のオブジェクトを選択し、[次へ] をクリックします。
必要なすべてのデータベース オブジェクトの種類を選択すると、[出力オプション] ペインが表示されます。[スクリプトをファイルに保存] を選択し、スクリプトのファイル パスを指定します。[次へ] をクリックします。選択内容を確認し、[完了] をクリックします。配置スクリプトが指定したファイル パスに保存されます。
配置後スクリプト
配置後スクリプトの実行が可能です。
配置後スクリプトを追加するには、Visual Studio のプロジェクト ディレクトリに postdeployscript.sql というファイルを追加します。たとえば、ソリューション エクスプローラーでプロジェクトを右クリックし、[既存項目の追加] をクリックします。ファイルは、Test Scripts フォルダーではなく、プロジェクトのルートに追加してください。
[配置] をクリックすると、プロジェクトの配置後に、このスクリプトが Visual Studio によって実行されます。