CLR データベース オブジェクトの配置

更新 : 2006 年 4 月 14 日

配置は、完了したアプリケーションまたはモジュールを別のコンピュータにインストールし、実行するために配布するプロセスです。Microsoft Visual Studio 2005 を使用して、共通言語ランタイム (CLR) データベース オブジェクトを開発し、これらをテスト サーバーに配置することができます。また、Visual Studio 2005 ではなく Microsoft .NET Framework の再配布ファイルを使用して、マネージ データベース オブジェクトをコンパイルすることも可能です。コンパイルすると、CLR データベース オブジェクトを含むアセンブリを、Visual Studio 2005 または Transact-SQL ステートメントを使用して、テスト サーバーに配置することができます。Visual Studio .NET 2003 は、CLR 統合プログラミングまたは配置には使用できない点に注意してください。SQL Server 2005 には .NET Framework 2.0 がプレインストールされていますが、Visual Studio .NET 2003 では .NET Framework 2.0 アセンブリを使用できません。

CLR メソッドをテスト サーバーでテストおよび検証すると、配置スクリプトを使用してこれらを実稼働サーバーに配布できます。配置スクリプトは手動で生成するか、SQL Server Management Studio を使用して生成することができます (後に示す手順を参照)。

SQL Server 2005 では、既定で CLR 統合機能は無効になっており、CLR アセンブリを使用するには、これを有効にする必要があります。詳細については、「CLR 統合の有効化」を参照してください。

ms345099.note(ja-jp,SQL.90).gifメモ :
互換性レベルが "80" の SQL Server 2005 データベースでは、マネージ コードでユーザー定義型、ストアド プロシージャ、関数、集計、またはトリガを作成することはできません。SQL Server 2005 のこれらの CLR 統合機能を使用するには、sp_dbcmptlevel (Transact-SQL) ストアド プロシージャを使用してデータベースの互換性レベルを "90" に設定する必要があります。

テスト サーバーへのアセンブリの配置

Visual Studio 2005 を使用し、CLR 関数、プロシージャ、トリガ、ユーザー定義型 (UDT)、またはユーザー定義集計 (UDA) を開発したり、これらをテスト サーバーに配置することができます。これらのマネージ データベース オブジェクトは、.NET Framework 再配布ファイルに含まれる csc.exe や vbc.exe などのコマンド ライン コンパイラによりコンパイルすることもできます。SQL Server 2005 のマネージ データベース オブジェクトを開発するのに、Visual Studio 2005 統合開発環境は必要ありません。

すべてのコンパイラ エラーおよび警告が解決されていることを確認してください。これで、Visual Studio または Transact-SQL ステートメントを使用して、CLR ルーチンを含むアセンブリを SQL Server 2005 データベースに登録できます。

ms345099.note(ja-jp,SQL.90).gifメモ :
Microsoft Visual Studio 2005 を使用してリモートで開発、デバッグおよび配置を行うには、SQL Server 2005 インスタンスで TCP/IP ネットワーク プロトコルを有効にする必要があります。サーバー上で TCP/IP プロトコルを有効にする方法の詳細については、「クライアント ネットワーク プロトコルの構成」を参照してください。

Visual Studio を使用してアセンブリを配置するには

  1. [ビルド] メニューで [<プロジェクト名> のビルド] をクリックし、プロジェクトをビルドします。

  2. アセンブリをテスト サーバーに配置する前に、すべてのビルド エラーおよび警告を解決します。

  3. [ビルド] メニューで [配置] をクリックします。これで、SQL Server 2005 インスタンス内および SQL Server プロジェクトを最初に Visual Studio で作成したときに指定したデータベース内にアセンブリが登録されます。

Transact-SQL を使用してアセンブリを配置するには

  1. .NET Framework に含まれるコマンド ライン コンパイラを使用して、ソース ファイルからアセンブリをコンパイルします。

  2. Microsoft Visual C# ソース ファイルの場合は、次のコマンドを実行します。

  3. csc /target:library C:\helloworld.cs

  4. Microsoft Visual Basic ソース ファイルの場合は、次のコマンドを実行します。

vbc /target:library C:\helloworld.vb

これらのコマンドでは、/target オプションを使用してライブラリ DLL をビルドすることを指定し、Visual C# コンパイラまたは Visual Basic コンパイラを起動します。

  1. アセンブリをテスト サーバーに配置する前に、すべてのビルド エラーおよび警告を解決します。
  2. テスト サーバーで SQL Server Management Studio を開きます。適切なテスト データベース (AdventureWorks など) に接続して、新しいクエリを作成します。
  3. 次の Transact-SQL をクエリに追加することにより、サーバーにアセンブリを作成します。

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE

  1. 次に、SQL Server のインスタンスに、プロシージャ、関数、集計、ユーザー定義型、またはトリガを作成する必要があります。HelloWorld アセンブリに、Procedures クラスの HelloWorld という名前のメソッドが含まれている場合、次の Transact-SQL をクエリに追加して、SQL Server 2005 に 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 2005 の別のインスタンスでこれを実行し、マネージ データベース オブジェクトを配置することができます。

"スクリプトの生成" 機能を使用して配置スクリプトを生成するには

  1. Management Studio を開き、配置するマネージ アセンブリまたはデータベース オブジェクトを登録する SQL Server インスタンスに接続します。

  2. オブジェクト エクスプローラで、[<サーバー名>] および [データベース] ツリーを展開します。マネージ データベース オブジェクトを登録するデータベースを右クリックし、[タスク][スクリプトの生成] の順にクリックします。スクリプト作成ウィザードが開きます。

  3. 一覧からデータベースを選択し、[次へ] をクリックします。

  4. [スクリプト オプションの選択] ペインで、[次へ] をクリックするか、オプションを変更して [次へ] をクリックします。

  5. [オブジェクトの種類を選択] ペインで、配置するデータベース オブジェクトの種類を選択します。[次へ] をクリックします。

  6. [オブジェクトの種類を選択] ペインで選択したそれぞれのオブジェクトの種類に対し、[<種類>の選択] ペインが表示されます。このペインでは、指定したデータベースに登録されているデータベース オブジェクトの種類のすべてのインスタンスから、いずれかのオブジェクトを選択できます。1 つ以上のオブジェクトを選択し、[次へ] をクリックします。

  7. 必要なすべてのデータベース オブジェクトの種類を選択すると、[出力オプション] ペインが表示されます。[スクリプトをファイルに保存] を選択し、スクリプトのファイル パスを指定します。[次へ] をクリックします。選択内容を確認し、[完了] をクリックします。配置スクリプトが指定したファイル パスに保存されます。

参照

その他の技術情報

データベース エンジンの .NET Framework プログラミング

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • リモート配置を行うためにサーバー上で TCP/IP を有効にする場合の記述を追加しました。
  • データベースの互換性レベルに関する記述を追加しました。
  • Visual Studio 2003 と .NET Framework 2.0 に関する記述を追加しました。