ArrayをSQL Serverストアドプロシージャに効率的に渡す
現代的なアプローチ(SQL Server 2016以降):JSONおよびDelimited ListsSQL Server 2016以降のバージョンは、JSONおよび区切りリストを使用して合理化されたソリューションを提供します。 アレイ要素が文字(コンマなど)によって分離されている区切りリストは、関数を使用して処理できます。 あるいは、JSONオブジェクトは、
STRING_SPLIT()
SQL Server 2008以降の場合、ユーザー定義型(UDTS)は、強力で効率的なアプローチを提供します。 アレイを表すUDTを作成し、テーブル値パラメーターとして渡します。この方法は、弦の操作と比較して、明確さ、パフォーマンスの向上、保守性の向上を提供します。 あなたのC#コードはa OPENJSON()
に渡すことができ、それをパラメーターとして渡すことができます。
古いバージョンでの配列の処理(SQL Server 2005):分割関数
SQL Server 2005では、カスタムスプリット関数(XMLを使用することが多い)が必要です。 この関数は、ストアドプロシージャ内で処理するために区切りの配列文字列を個々の値に分解します。DataTable
なぜテーブル値パラメーターが優れているのか
テーブル値パラメーターは大きな利点を提供します:
透明度:入力が明確に定義されており、区切り文字の周りのあいまいさを排除します パフォーマンス:
XMLまたは文字列分割を含むメソッドよりも一般的に高速です。 メンテナビリティ:以上が配列をSQL Serverストアドプロシージャに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。