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

適用対象:SQL Server

配置は、完了したアプリケーションまたはモジュールを別のコンピューターにインストールし、実行するために配布するプロセスです。 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を使用して生成することもできます (このトピックの後半の手順を参照してください)。

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

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

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

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

注意

リモート開発、デバッグ、開発に Microsoft Visual Studio を使用するには、SQL Server インスタンスで TCP/IP ネットワーク プロトコルを有効にする必要があります。 サーバーで TCP/IP プロトコルを有効にする方法の詳細については、「 クライアント プロトコルの構成」を参照してください。

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

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

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

  3. [ビルド] メニューから [ デプロイ ] 選択します。 その後、SQL Server プロジェクトが Visual Studio で初めて作成されたときに指定されたSQL Server インスタンスとデータベースにアセンブリが登録されます。

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 オプションを使用して Visual C# または Visual Basic コンパイラを起動し、ライブラリ DLL のビルドを指定します。

  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で hello というプロシージャを作成できます。

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

SQL Serverでさまざまな種類のマネージド データベース オブジェクトを作成する方法の詳細については、「CLR User-Defined関数CLR User-Defined 集計、CLR User-DefinedCLR ストアド プロシージャおよび CLR トリガー」を参照してください。

実稼働サーバーへのアセンブリの配置

CLR データベース オブジェクトをテスト サーバーでテストおよび検証した後は、実稼働サーバーに配布できます。 マネージド データベース オブジェクトのデバッグの詳細については、「 CLR データベース オブジェクトのデバッグ」を参照してください。

マネージド データベース オブジェクトのデプロイは、通常のデータベース オブジェクト (テーブル、Transact-SQL ルーチンなど) と似ています。 CLR データベース オブジェクトを含むアセンブリは、配置スクリプトを使用して別のサーバーに配置できます。 デプロイ スクリプトは、Management Studio の "スクリプトの生成" 機能を使用してビルドできます。 配置スクリプトは、手動で作成することも、また、"スクリプトの生成" を使用して作成した後に手動で変更することもできます。 デプロイ スクリプトがビルドされたら、SQL Serverの他のインスタンスで実行して、マネージド データベース オブジェクトをデプロイできます。

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

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

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

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

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

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

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

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

配置後スクリプト

配置後スクリプトの実行が可能です。

配置後スクリプトを追加するには、Visual Studio のプロジェクト ディレクトリに postdeployscript.sql というファイルを追加します。 たとえば、ソリューション エクスプローラーでプロジェクトを右クリックし、[既存の項目の追加] を選択します。 ファイルは、Test Scripts フォルダーではなく、プロジェクトのルートに追加してください。

[配置] をクリックすると、プロジェクトの配置後に、このスクリプトが Visual Studio によって実行されます。

参照

CLR (共通言語ランタイム) 統合のプログラミング概念