C# 言語拡張とは
適用対象: SQL Server 2019 (15.x) 以降のバージョン
C# 言語拡張は、SQL Server 内で C# コードを実行するために使用できる SQL Server 言語拡張の機能です。 C# アプリケーションに対して既存の SQL Server テーブルを DataFrame として渡したり、豊富なライブラリを使用して C# で操作を実行したり、結果セットを取得したりできます。 この C# 言語拡張機能を使用すると、Transact-SQL (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 にのみ統合されています。 Linux はサポートされていません。
実行可能な操作
C# 言語拡張では、外部 C# コードを実行するために拡張機能フレームワークが使用されます。 コードの実行はコア エンジン プロセスから分離されていますが、SQL Server のクエリ実行と完全に統合されています。 データのソースで C# コードを実行できるため、ネットワーク経由でデータをプルする必要はありません。
データのクリーニング、高速なデータのクエリ、または DataFrame を通じて発生する可能性のあるその他の C# の処理を行うことができます。 ストアド プロシージャに C# コードを埋め込むことで、ビジネス ロジックをデータベースに押し込み、パフォーマンスを向上させることができます。 これにより、ビジネス ロジック処理を実行するためにデータを SQL Server から取得してアプリ層に移動する必要がなくなるため、不必要なデータの移動と遅延を回避できます。
作業の開始
開発ツールを構成します。
- C# コードの開発には、好みの IDE を使用します。
- SQL Server 上で C# コードを実行するには、SQL Server 用の Microsoft Extensibility SDK for C# をインストールします。
- SQL Server Management Studio (SSMS) または Azure Data Studio を使用して SQL Server 上で外部コードを実行します。
- システム ストアド プロシージャ sp_execute_external_script を使用して SQL Server 上で C# コードを実行します。
最初の C# コードを記述します。 次のチュートリアルを出発点として使用してください。 チュートリアル: C# で正規表現 (regex) を使用して文字列を検索する