SQL Server の CLR 統合の概要 (ADO.NET)
更新 : November 2007
共通言語ランタイム (CLR) は、Microsoft .NET Framework の中核であり、すべての .NET Framework コードの実行環境を提供します。CLR の内部で実行されるコードはマネージ コードと呼ばれます。CLR は、ジャストインタイム (JIT) コンパイル、メモリの割り当てと管理、タイプ セーフの設定、例外処理、スレッド管理、セキュリティなど、プログラムの実行に必要なさまざまな機能やサービスを備えています。
Microsoft SQL Server にホストされる CLR (CLR 統合と呼ばれる) を利用することで、ストアド プロシージャ、トリガ、ユーザー定義関数、ユーザー定義型、およびユーザー定義集計をマネージ コードで作成できます。マネージ コードは実行前にネイティブ コードにコンパイルされるため、状況によっては、パフォーマンスが大幅に向上します。
マネージ コードは、コード アクセス セキュリティ (CAS)、コード リンク、およびアプリケーション ドメインを使用して、アセンブリが特定の操作を実行することを防止します。SQL Server 2005 は、CAS を使用して、マネージ コードをセキュリティ保護し、オペレーティング システムやデータベース サーバーへの侵害を防止します。
このセクションは、SQL Server の CLR 統合を利用したプログラミングを始めるのに十分な情報を提供することを目的としており、包括的な情報の提供は目的としていません。詳細については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。
SQL Server 2005 |
SQL Server 2008 |
---|---|
CLR 統合の有効化
Microsoft SQL Server では共通言語ランタイム (CLR) 統合機能が既定でオフになっているため、CLR 統合を利用して実装されるオブジェクトを使用するには、CLR 統合機能を有効にする必要があります。Transact-SQL を使用して CLR 統合を有効にするには、次に示すように、sp_configure ストアド プロシージャの clr enabled オプションを使用します。
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
clr enabled オプションを 0 に設定することにより、CLR 統合を無効にできます。CLR 統合を無効にすると、SQL Server ではすべての CLR ルーチンの実行が停止され、すべてのアプリケーション ドメインがアンロードされます。
詳細については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。
SQL Server 2005 |
SQL Server 2008 |
---|---|
CLR アセンブリの配置
CLR メソッドをテスト サーバーでテストおよび検証すると、配置スクリプトを使用してこれらを実稼働サーバーに配布できます。配置スクリプトは手動で生成するか、SQL Server Management Studio を使用して生成することができます。詳細については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。
SQL Server 2005 |
SQL Server 2008 |
---|---|
CLR 統合セキュリティ
Microsoft SQL Server と Microsoft .NET Framework 共通言語ランタイム (CLR) との統合のセキュリティ モデルは、SQL Server 内部で実行されるさまざまなタイプの CLR オブジェクトおよび非 CLR オブジェクトの間のアクセスを管理し、セキュリティで保護します。これらのオブジェクトは、Transact-SQL ステートメントまたはサーバーで実行される別の CLR オブジェクトから呼び出される可能性があります。
詳細については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。
SQL Server 2005 |
SQL Server 2008 |
---|---|
CLR アセンブリのデバッグ
SQL Server は、データベース内の Transact-SQL オブジェクトおよび共通言語ランタイム (CLR) オブジェクトのデバッグをサポートしています。デバッグは言語をまたがって機能します。ユーザーは、Transact-SQL から CLR オブジェクトへ、または CLR オブジェクトから Transact-SQL へシームレスにデバッグできます。
詳細については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。
SQL Server 2005 |
SQL Server 2008 |
---|---|