方法: SQL Server 共通言語ランタイム統合機能を使用するデータ オブジェクトのプロジェクトを作成する

Visual Studio の SQL Server プロジェクトは、Visual Basic や Visual C# などの .NET Framework 言語を使用して、ストアド プロシージャ、トリガー、集計、ユーザー定義関数、およびユーザー定義型を作成するときに役立ちます。SQL Server プロジェクトは、SQL Server 2005 以降のバージョンの SQL Server の参照が必要です。 これらのオブジェクトは、SQL Server 共通言語ランタイム オブジェクト (SQL CLR オブジェクト) とも呼ばれます。

重要

SQL Server 2005 または SQL Server 2008 の SQL CLR アセンブリを開発する場合、開発用コンピューターに .NET Framework Version 3.5 がインストールされている必要があります。 SQL Server 2005 および SQL Server 2008 では、SQL CLR アセンブリがバージョン 2.0、3.0、または 3.5 の .NET Framework を対象にしている必要があります。 Microsoft Web サイトから Microsoft .NET Framework 3.5 をインストールすることができます。

SQL CLR データベース プロジェクトを作成したら、SQL Server に配置するデータベース オブジェクトを作成します。 使用できるデータベース オブジェクトの作成方法の詳細を説明したヘルプ トピックへのリンクについては、次の表を参照してください。

データベース オブジェクト

情報

ストアド プロシージャ

方法: 共通言語ランタイム統合機能を使用して SQL Server ストアド プロシージャを作成および実行する

トリガー

方法: 共通言語ランタイム統合機能を使用して SQL Server のトリガーを作成および実行する

Aggregate

方法: 共通言語ランタイム統合機能を使用して SQL Server の集計を作成および実行する

ユーザー定義関数

方法: 共通言語ランタイム統合機能を使用して SQL Server のユーザー定義関数を作成および実行する

ユーザー定義型

方法: 共通言語ランタイム統合機能を使用して SQL Server のユーザー定義型を作成および実行する

注意

実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。

新規プロジェクトの作成

新しい SQL Server プロジェクトを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [インストールされたテンプレート] で、[データベース] ノードを展開し、[SQL Server] をクリックします。

  3. テンプレートの一覧で、作成するプロジェクトの種類に対応するアイコンをクリックします。 たとえば、Visual C# を使用する SQL CLR プロジェクトを作成するには、[Visual C# SQL CLR データベース プロジェクト] をクリックします。

  4. テンプレート一覧の上にあるターゲット フレームワーク一覧で、SQL CLR データベース プロジェクトを配置するバージョンの SQL Server に対応する .NET Framework のバージョンをクリックします。

    重要

    2.0、3.0、または 3.5 バージョンの .NET Framework でビルドした SQL Server プロジェクトをサポートするのは、SQL Server 2005 および SQL Server 2008 のみです。 展開すると、SQL ServerプロジェクトSQL Server 2005またはSQL Server 2008、エラーが表示されます。Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(ここでAssemblyNameは、展開するアセンブリの名前です)。

  5. [名前] に、プロジェクトに使用する名前を入力します。

  6. [OK] をクリックします。

SQL Server プロジェクトの構成

SQL Server プロジェクトを作成した後は、プロジェクトを配置する前に、プロジェクトのプロパティを変更することもできます。

SQL Server プロジェクトのプロパティを構成するには

  1. ソリューション エクスプローラーで、プロパティを構成するプロジェクトを選択します。

  2. [プロジェクト] メニューの [<プロジェクト名> のプロパティ] をクリックします。ここで、プロジェクト名 は SQL Server プロジェクトの名前です。

  3. [アプリケーション] タブの [アセンブリ] 名に、SQL Server プロジェクトからビルドしたアセンブリに割り当てる名前を指定します。

  4. SQL CLR データベース プロジェクトを配置する予定のバージョンの SQL Server でサポートされているバージョンの .NET Framework が既にある場合、手順 10. に進みます。

  5. Visual Basic を使用している場合、手順 7. に進みます。

  6. [ターゲット フレームワーク][アプリケーション] タブで、SQL CLR データベース プロジェクトを配置するバージョンの SQL Server に対応する .NET Framework のバージョンをクリックします。

    重要

    2.0、3.0、または 3.5 バージョンの .NET Framework でビルドした SQL Server プロジェクトをサポートするのは、SQL Server 2005 および SQL Server 2008 のみです。 展開すると、SQL ServerプロジェクトSQL Server 2005またはSQL Server 2008、エラーが表示されます。Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(ここでAssemblyNameは、展開するアセンブリの名前です)。

  7. 手順 10. に進みます (Visual Basic を使用している場合にのみ、手順 7.、8.、および 9. を実行します)。

  8. [コンパイル] タブの [詳細コンパイル オプション] をクリックします。

  9. [ターゲット フレームワーク][ビルドの詳細設定] ダイアログ ボックスで、SQL CLR データベース プロジェクトを配置するバージョンの SQL Server に対応する .NET Framework のバージョンをクリックします。

    重要

    2.0、3.0、または 3.5 バージョンの .NET Framework でビルドした SQL Server プロジェクトをサポートするのは、SQL Server 2005 および SQL Server 2008 のみです。 展開すると、SQL ServerプロジェクトSQL Server 2005またはSQL Server 2008、エラーが表示されます。Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(ここでAssemblyNameは、展開するアセンブリの名前です)。

  10. [OK] をクリックします。

  11. [データベース] タブの [アセンブリ所有者] に、アセンブリの所有者であるユーザー名または役割を入力します。

    重要

    この値に現在のユーザーがメンバーとして含まれているロールの名前を指定するか、現在のユーザーに IMPERSONATE アクセス許可を指定する必要があります。 アセンブリ所有者を指定しない場合、所有権は現在のユーザーに与えられます。 この設定は、SQL Server CREATE ASSEMBLY ステートメントの AUTHORIZATION 所有者名 引数に対応します。 詳細については、Microsoft Web サイトの「CREATE ASSEMBLY (Transact-SQL)」を参照してください。

  12. [ファイル] メニューの [すべてを保存] をクリックします。

    XML シリアル化を利用する SQL CLR オブジェクトを作成する場合、後述する「XML シリアル化を使用した SQL CLR オブジェクトの作成」の追加の手順を実行します。

XML シリアル化を使用した SQL CLR オブジェクトの作成

Web サービスを作成する場合、ビルド プロパティで [シリアル化アセンブリの生成] オプションをオンに設定します。 ただし、SQL CLR オブジェクトを含むアセンブリを配置する場合、XML シリアル化アセンブリはターゲット サーバーに作成されません。 PostDeployScript.sql スクリプトにステートメントを追加してアセンブリを作成します。

注意

Web サービスを作成する場合、アクセス許可セットを [外部アクセス] または [アンセーフ] に設定し、ターゲット データベースの Trustworthy 設定をオンにする必要があります。

SQL CLR アセンブリ用の XMLSerializer アセンブリを作成するには

  1. ソリューション エクスプローラーで、配置する SQL CLR プロジェクトを展開し、PostDeployScript.sql スクリプトをダブルクリックします。

  2. コード エディターで、次の Transact-SQL ステートメントをスクリプトに追加します。

    CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll' 
    

    ここで、SqlClassLibraryXML はアセンブリに付与する名前、path はシリアライザー アセンブリのパス、assemblyname.XmlSerializers.dll はシリアライザー アセンブリーの名前です。

  3. [ファイル] メニューの [PostDeployScript.dll の保存] をクリックします。

SQL Server データベースとの接続

SQL CLR データベース プロジェクトでは、SQL Server 2005 以降で実行するデータベースへの接続が必要です。 サーバー エクスプローラーで SQL Server 2005 データベースへの接続が使用できる場合、[データベース参照の追加] ダイアログ ボックスに表示されます。 データベース プロジェクト (.dbproj) を使用して SQL Server プロジェクトからビルドしたアセンブリを配置する予定の場合、データベース接続を指定する必要はありません。接続ダイアログ ボックスで [キャンセル] をクリックできます。 詳細については、「SQLCLR オブジェクトを参照するデータベースのチーム開発の開始」を参照してください。

SQL Server データベースに接続するには

  • [接続の追加/変更] ダイアログ ボックスの設定を完了して、SQL Server 2005 または SQL Server 2008 データベースに接続します。 詳細については、「接続の追加/変更 (Microsoft SQL Server)」を参照してください。

    または

    [データベース参照の追加] ダイアログ ボックスで、SQL Server プロジェクトに使用する既存のデータベース接続を選択します。 詳細については、「[データベース参照の追加] ダイアログ ボックス」を参照してください。

参照

処理手順

チュートリアル : マネージ コードでのストアド プロシージャの作成

方法 : SQL CLR のストアド プロシージャをデバッグする

参照

SQL CLR データベース プロジェクトおよびデータベース オブジェクトの属性

概念

SQL Server の CLR 統合の概要 (ADO.NET)

マネージ コードを使用したデータベース オブジェクトの作成の利点

その他の技術情報

マネージ コードでの SQL Server オブジェクトの作成