共通言語ランタイム (CLR) 統合プログラミングの概念
適用対象:SQL ServerAzure SQL Managed Instance
SQL Server には、.NET Framework for Windows の共通言語ランタイム (CLR) コンポーネントの統合が用意されています。
C# や Visual Basic .NET などの任意の言語を使用して、ストアド プロシージャ、トリガー、ユーザー定義型、ユーザー定義関数、ユーザー定義集計、ストリーミング テーブル値関数を記述できます。
解説
SQL Server CLR 統合では、.NET Core または .NET 5 以降のバージョンはサポートされていません。
LINUX では SQL Server 2017 (14.x) 以降のバージョンの CLR データベース オブジェクトを読み込むことができますが、.NET Framework を使用してビルドする必要があります。 また、
EXTERNAL_ACCESS
またはUNSAFE
アクセス許可セットを持つ CLR アセンブリは、Linux ではサポートされていません。既定では、.NET Framework ランタイム は SQL Server と共にインストールされますが、.NET Framework SDK はインストールされません。 最新バージョンの .NET Framework SDK をインストールするには、「.NET Framework Developer Pack のダウンロードを参照してください。
Microsoft.SqlServer.Server
名前空間には、SQL Server での CLR プログラミングのコア機能が含まれています。Microsoft.SqlServer.Server
名前空間のドキュメントについては、「Microsoft.SqlServer.Server 名前空間 (.NET Framework 4.8)を参照してください。CLR ユーザー関数などの CLR 機能は、Azure SQL Database ではサポートされていません。
このセクションの内容
次の表に、このセクションの記事を示します。
[アーティクル] | 説明 |
---|---|
共通言語ランタイム (CLR) 統合 の |
CLR の概要と、このテクノロジが SQL Server で使用される方法と理由について説明します。 CLR を使用してデータベース オブジェクトを作成する利点についても説明します。 |
アセンブリ (データベース エンジン) | 関数、ストアド プロシージャ、トリガー、ユーザー定義集計、およびユーザー定義型を展開するために、SQL Server でアセンブリを使用する方法について説明します。 これらのオブジェクトは、Transact-SQL ではなく、.NET Framework 共通言語ランタイム (CLR) によってホストされているマネージ コード言語のいずれかで記述されます。 |
共通言語ランタイム (CLR) 統合 を使用してデータベース オブジェクトをビルドする | CLR を使用して作成できるオブジェクトの種類について説明し、CLR データベース オブジェクトの作成要件を確認します。 |
CLR データベース オブジェクトからのデータ アクセス | CLR ルーチンが SQL Server のインスタンスに格納されているデータにアクセスする方法について説明します。 |
CLR 統合セキュリティ の |
CLR 統合のセキュリティ モデルについて説明します。 |
CLR データベース オブジェクトをデバッグする方法 | CLR データベース オブジェクトをデバッグする場合の制限事項と要件について説明します。 |
CLR データベース オブジェクト を配置する | 実稼働サーバーへのアセンブリの配置について説明します。 |
CLR 統合アセンブリの管理 | CLR 統合のアセンブリの作成および削除方法について説明します。 |
マネージド データベース オブジェクトの監視とトラブルシューティング | SQL Server で実行されているマネージド データベース オブジェクトとアセンブリの監視とトラブルシューティングに使用できるツールに関する情報を提供します。 |
CLR (共通言語ランタイム) 統合の使用シナリオと例 | CLR オブジェクトを使用する使用シナリオとコード サンプルについて説明します。 |