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