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 から取得してアプリ層に移動する必要がなくなるため、不必要なデータの移動と遅延を回避できます。

作業の開始

  1. Windows 上に SQL Server の .NET 言語拡張をインストールします

  2. 開発ツールを構成します。

  3. 最初の C# コードを記述します。 次のチュートリアルを出発点として使用してください。 チュートリアル: C# で正規表現 (regex) を使用して文字列を検索する