ストアドプロシージャがあります。この手順には、次のようなコードがあります。
...WHERE someParam IN (1,2)...
この部分を抽象化する必要があります。未定義の数のパラメーターを考慮する必要があるためです (1 または 2 だけではありません)。このパラメーター リストを vb.net コードから cvs 文字列 (つまり、"1,2" または "78, 109" など) として取得します。事実上、私の状況は次のようになります。
DECLARE @IdParam varchar(100)
SET @IdParam = '1,2'
...
...WHERE someParam IN (@IdParm)...
しかし、このコードは明らかにエラーを生成します:
varchar 値 '1,2' をデータ型 int に変換するときに変換に失敗しました。
目標を達成し、SQL エンジンを静かに保つにはどうすればよいですか? 最適なソリューションが存在する場合は、既存の VB コードを変更することを検討できます。
編集 1: リンクされた投稿の醜い解決策は使用しません。