SQL Server プロジェクト
更新 : 2007 年 11 月
ストアド プロシージャやトリガなどのデータベース オブジェクトの作成、および Microsoft SQL Server 2005 データベースのデータの取得や更新には、Transact-SQL プログラミング言語以外に .NET Framework 言語も使用できます。SQL Server 用の .NET Framework データベース オブジェクトの開発にマネージ コードを使用すると、Transact-SQL を使用する場合よりも多くの利点があります。詳細については、「マネージ コードを使用したデータベース オブジェクトの作成の利点」を参照してください。
データベース オブジェクトを作成するには、SQL Server プロジェクトを作成して、必要な項目をプロジェクトに追加し、これらの項目にコードを追加します。その後で、プロジェクトをアセンブリにビルドし、SQL Server に配置します。
メモ : |
---|
既定では、Microsoft SQL Server で共通言語ランタイム (CLR) 統合機能が無効になっているので、SQL Server プロジェクト項目を使用するにはこの機能を有効にする必要があります。CLR 統合を有効にするには、sp_configure ストアド プロシージャの clr enabled オプションを使用します。詳細については、「CLR 統合の有効化」を参照してください。 |
新規プロジェクトの作成
SQL Server プロジェクトを新規作成するには、[ファイル] メニューをクリックし、[新しいプロジェクト] をクリックして、[新しいプロジェクト] ダイアログ ボックスの [SQL Server プロジェクト] を選択します。詳細については、「方法 : SQL Server プロジェクトを作成する」を参照してください。
SQL Server プロジェクトを新規作成すると、[データベース参照の追加] ダイアログ ボックスが表示されます。このダイアログ ボックスは、プロジェクトにデータベース参照や接続を追加するときに使用します。サーバー エクスプローラ/データベース エクスプローラで、現在使用可能なデータベース参照を選択するか、新しい接続を定義します。各プロジェクトに追加できるデータベース参照は、1 つだけです。
プロジェクトのプロパティ
[アセンブリ名] は、変更できます。アセンブリ名は、アセンブリ マニフェストを格納する出力ファイルの名前です。アセンブリ名を変更すると、SQL Server データベース内のデータベース オブジェクトの名前も変更されます。
プロジェクトへの項目の追加
新しい SQL Server プロジェクトには、参照とアセンブリ情報しか格納されていません。データベース オブジェクトを作成するには、まず、プロジェクトに項目を追加し、次にコードを項目に追加します。詳細については、「SQL Server プロジェクト用の項目テンプレート」を参照してください。
追加できる SQL Server プロジェクト固有の項目を次の表に示します。
項目 |
詳細情報 |
---|---|
ストアド プロシージャ |
|
トリガ |
|
ユーザー定義関数 |
|
ユーザー定義型 |
|
集計 |
ビルド、配置、およびデバッグ
プロジェクトをビルドすると、アセンブリにコンパイルされ、プロジェクトでの参照やデバックが可能なデータベースに配置できます。
ヒント : |
---|
ビルド、配置、およびデバッグの 3 つの別個の手順を実行する代わりに、[開始] コマンド (F5 キー) または [デバッグなしで開始] コマンド (CTRL+F5 キー) を使用してアセンブリをビルドし、データベースに配置して、データベース オブジェクトをデバッグできます。 |
データベース オブジェクトをデバッグするには、Transact-SQL コードを Test.sql (Visual C++ の場合は debug.sql) 項目に追加する必要があります。Test.sql 項目のスクリプトは、データベース オブジェクトを起動してテストするために必要なアクションをデータベースで実行するので、デバッグで重要な役割を果たします。Test.sql 項目をプロジェクトに追加すると、この Test.sql 項目には、データベースで必要なアクションを実行するスクリプトのコードのアウトラインが格納されます。SQL Server プロジェクトに複数のデータベース オブジェクトが格納される場合、Test.sql 項目のスクリプトを各データベース オブジェクトに対して実行する必要があります。
デバッグ スクリプトの要件は、独立した実行プログラムを作成して実行する Windows フォーム プロジェクトなどの場合の要件とは異なります。デバッグ スクリプトでは、データベース オブジェクトは、データベース内でのアクションや呼び出しに応じてのみ実行されるためです。たとえば、トリガは、テーブルに新しい行が挿入されるとアクティブにされます。そのため、トリガをアクティブにするには、Test.sql スクリプトでテーブルに新しい行を挿入する必要があります。トリガの実行結果は、Visual Studio の [出力] ウィンドウに表示されるので、トリガが正しく実行されているかどうかを確認できます。
次に、SQL Server プロジェクトに追加した項目と Test.sql 項目に、コードを追加します。各データベース オブジェクトのサンプル コードは、使用可能なデータベース項目のトピックに記載されています。前の表を参照してください。
SQL Server プロジェクトのビルド
プロジェクトをビルドすると、アセンブリにコンパイルされます。Visual Basic を使用している場合は、次の手順を実行します。
Visual Basic SQL Server プロジェクトをビルドするには
ソリューション エクスプローラでプロジェクトを選択します。
[ビルド] メニューの [<ProjectName> のビルド] をクリックします。
Visual C#、Visual C++、または Visual J# を使用している場合は、次の手順を実行します。
Visual C#、Visual C++、または Visual J# の SQL Server プロジェクトをビルドするには
ソリューション エクスプローラでソリューションを選択します。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
データベースへのアセンブリの配置
プロジェクトで参照しているデータベースにアセンブリを配置すると、そのデータベースへの接続が作成され、アセンブリがデータベースにコピーされます。このコピーがデータベースに登録されて、属性が設定されます。アセンブリはサーバー上の特定のデータベースに配置されるので、同じサーバーの別のデータベースに対して新しいデータベース参照を作成した場合、このアセンブリを使用するには、その 2 つ目のデータベースにアセンブリを配置する必要があります。
Visual Basic を使用している場合は、次の手順を実行します。
Visual Basic SQL Server のクラス ライブラリ アセンブリを配置するには
ソリューション エクスプローラでプロジェクトを選択します。
[ビルド] メニューの [<ProjectName> の配置] をクリックします。
Visual C#、Visual C++、または Visual J# を使用している場合は、次の手順を実行します。
Visual C#、Visual C++、または Visual J# の SQL Server クラス ライブラリ アセンブリを配置するには
ソリューション エクスプローラでソリューションを選択します。
[ビルド] メニューの [ソリューションの配置] をクリックします。
データベース オブジェクトのデバッグ
データベース オブジェクトをデバッグすると、アセンブリがビルドされ、データベースに配置されて、デバッグされます。以前にビルドされて配置されたデータベース オブジェクトをデバッグする場合、前回のデータベース オブジェクトのビルド後にそのプロジェクトが変更されているときだけ、アセンブリが再度ビルドされます。アセンブリは、必ずデータベースから削除され、再度コピーされます。
データベース オブジェクトをデバッグするには
ソリューション エクスプローラでソリューションを選択します。
[デバッグ] メニューの [開始] をクリックします。
[出力] ウィンドウの [出力元の表示] の一覧で [データベース出力] をクリックして、結果を表示します。
参照
処理手順
方法 : CLR の SQL Server ストアド プロシージャを作成および実行する
方法 : CLR の SQL Server トリガを作成および実行する
方法 : CLR の SQL Server の集計を作成および実行する
方法 : CLR の SQL Server ユーザー定義関数を作成および実行する
方法 : CLR の SQL Server ユーザー定義型を作成および実行する
チュートリアル : マネージ コードでのストアド プロシージャの作成
方法 : SQL CLR のストアド プロシージャをデバッグする
概念
SQL Server の CLR 統合の概要 (ADO.NET)
マネージ コードを使用したデータベース オブジェクトの作成の利点
参照
SQL Server プロジェクトおよびデータベース オブジェクトの属性