答えは目の前にあると確信していますが、これを行う良い方法を見つけることができないようです。
で区切られた多くの値を含む文字列があります,
。その文字列にいくつの値が含まれるかは(実行前に)わかりません。それらをデータベース(この場合はSQL Server 2008)に挿入したいのですが、文字列が大きすぎる可能性があるNVARCHAR(MAX)
ため、一時テーブルを作成して値を挿入したいと考えています。
私はこのようなことを簡単に行うことができます(例として小さなものを作成します):
VB
myString = "101,102,103,104,105,106,107,108,109"
For Each value As String in myString.Split(",")
myCommand.CommandText = "INSERT INTO tempTable VALUES @value"
myCommand.Parameters.AddWithValue("@value", value)
Next
C#
myString = "101,102,103,104,105,106,107,108,109";
foreach (string value in myString.Split(','))
{
myCommand.CommandText = "INSERT INTO tempTable VALUES @value";
myCommand.Parameters.AddWithValue("@value", value);
}
しかし、これはそれを行う方法ではありません。8000 のレコードがある場合、8000 の異なる挿入が発生し、これを行うことを考えただけでも解雇される可能性があります。
誰かが私を正しい方向に向けることができますか?
tl;dr
値を含む文字列は、この「001,002,003,004,005...8000」のようになります。8000ステートメント,
を作成せずに、各値を で区切って挿入するにはどうすればよいですかINSERT
。