C# 言語拡張とは

適用対象: SQL Server 2019 (15.x) 以降のバージョン

オープンソースの .NET C# 言語拡張は、SQL Server 内で C# コードを実行するために使用できる SQL Server 言語拡張の機能です。 C# アプリケーションに対して既存の SQL Server テーブルを DataFrame として渡したり、豊富なライブラリを使用して C# で操作を実行したり、結果セットを取得したりできます。 この C# 言語拡張機能を使用すると、T-SQL では得られない機能を提供する既存の C# コード、計算、ロジック、または広範なライブラリを再利用できます。

外部 C# 言語は CREATE EXTERNAL LANGUAGE で定義されます。 システム ストアド プロシージャ sp_execute_external_script は、C# コードを実行するためのインターフェイスとして使用されます。

Note

C# 言語拡張機能は、SQL Server 2019 (15.x) CU 3 以降のバージョンと互換性があります。 現在、.NET Core は Windows の SQL Server にのみ統合されています。

実行可能な操作

C# 言語拡張では、外部 C# コードを実行するために拡張機能フレームワークが使用されます。 コードの実行はコア エンジン プロセスから分離されていますが、SQL Server のクエリ実行と完全に統合されています。 データのソースで C# コードを実行できるため、ネットワーク経由でデータをプルする必要はありません。

データのクリーニング、高速なデータのクエリ、または DataFrame を通じて発生する可能性のあるその他の C# の処理を行うことができます。 ストアド プロシージャに C# コードを埋め込むことで、ビジネス ロジックをデータベースに押し込み、パフォーマンスを向上させることができます。 これにより、ビジネス ロジック処理を実行するためにデータを SQL Server から取得してアプリ層に移動する必要がなくなるため、不必要なデータの移動と遅延を回避できます。

作業の開始

C# 言語拡張機能は SQL Server とともにインストールされません。 C# 拡張をインストールして構成するには、「.Net Core C# 言語拡張」を参照してください。 「Regex サンプル」チュートリアルでは、正規表現を使用して SQL テーブル内のテキストをチェックする C# プログラムの作成方法が説明されています。