CLR (共通言語ランタイム) 統合の使用シナリオと例

SQL Server には、サンプル アプリケーション、パッケージ サンプル、およびさまざまなコーディング サンプルが含まれています。これらのサンプルを使用することで、CLR (共通言語ランタイム) 統合のプログラミング機能について理解することができます。

これらのサンプルを実装する完全な Visual Studio プロジェクトやその他の情報については、CodePlex で Microsoft SQL Server コミュニティのプロジェクトとサンプルを参照してください。

名前

説明

CLR UDF からのネイティブ コードへのアクセス

アセンブリ内のユーザー定義関数に含まれるネイティブ (アンマネージ) C++ コードの関数をデータベースから呼び出す方法を紹介します。

Array パラメーター サンプル

クライアントからサーバー上の CLR 統合ストアド プロシージャに情報の配列を渡すことで、データベース内の一連の行を作成、更新、または削除する方法を例示します。 この処理は、UDT を使って行っています。

カレンダー対応の日付/時刻 UDT サンプル

日付と時刻のカレンダー対応処理を提供する 2 つの UDT を定義します。

CLR Transactions サンプル

System.Transactions 名前空間にあるマネージ API を使用してトランザクションを制御する例を示します。

CLR と XML を使用した連絡先の作成

SQL Server の Contact サンプルは、基礎となる AdventureWorks2012 サンプル データベースに新しい機能の層を追加する便利なユーティリティをいくつか提供します。 1 つ目のユーティリティは、AdventureWorks2012 データベースに関係した、さまざまな人々の連絡先のレコードを作成します。 連絡先の情報は XML を使用して指定され、XML を作成してデータベースの適切なテーブルに配置するための C# ベースのストアド プロシージャまたは VB ストアド プロシージャに渡されます。

通貨型と変換関数

C# を使用して Currency ユーザー定義データ型を定義します。

CLR を使用したラージ オブジェクトの処理

SQL Server と、サーバーからアクセスできるファイル システムとの間で、CLR ストアド プロシージャを使用して LOB (ラージ バイナリ オブジェクト) を転送する例を示します。

Hello World Ready サンプル

CLR 統合に基づく簡単な国際化対応のストアド プロシージャを作成、配置、およびテストする基本的な操作を例示します。

Hello World サンプル

CLR 統合に基づく簡単なストアド プロシージャを作成、配置、およびテストする基本的な操作を例示します。

インプロセス データ アクセス サンプル

CLR インプロセス データ アクセス プロバイダーのさまざまな機能を例示する簡単な関数が数多く含まれています。

結果セットのサンプル

クエリの結果全体を読み取るときに、新しい接続を開かず、すべての結果をメモリに読み込まずにコマンドを実行する方法を例示します。

Send DataSet サンプル

サーバー側の CLR ベースのストアド プロシージャ内で、クライアントへの結果セットとして ADO.NET ベースのデータセットを返す方法を示します。

文字列ユーティリティ関数サンプル

Visual C# と Visual Basic で記述されたストリーミング TVF (テーブル値関数) が含まれています。この関数は、コンマ区切りの文字列を 1 列のテーブルに分割します。

補助文字対応文字列操作サンプル

Unicode 文字列とサロゲート文字列の両方を処理できる、補助文字対応の 5 つの Transact-SQL 文字列関数の実装を示します。

UDT ユーティリティ

多くの UDT (ユーザー定義データ型) ユーティリティ関数が含まれています。

未使用のアセンブリのクリーンアップ

メタデータ カタログに対してクエリを実行して、現在のデータベース内で使用されていないアセンブリを削除する .NET ストアド プロシージャが含まれています。

ユーザー定義型

Transact-SQL と、System.Data.SqlClient を使用するクライアント アプリケーションの両方から、簡単な UDT を作成および使用する方法を示します。

UTF8 文字列ユーザー定義データ型 (UDT)

UTF8 エンコードされた値を格納するために、データベースの型システムを拡張する UDT の実装を例示します。