は、同じテーブルに複数の挿入は、テーブル値 パラメータに相当し、パラメータとして カスタムCLRオブジェクトを送信することなく行うことができますか?
はい、SqlTransactionを使用して1つのトランザクションで行を行えます。
は、各呼び出しで 1行項目を挿入し、ループ内で呼び出すことがMyInsertSingleLineItemCommandできますか?
以下の例のコードです。
using (SqlConnection cn = new SqlConnection("YOUR CONNECTION STRING")
{
cn.Open();
using (SqlTransaction tr = cn.BeginTransaction())
{
// your looping code here persisting to sql server db
tr.Commit();
}
}
また、TransactionScopeを使用してこれを行うこともできます。
using (var ts = new TransactionScope())
{
using (SqlConnection connection = new SqlConnection("YOUR CONNECTION STRING"))
{
connection.Open();
// your looping code here persisting to sql server db
}
ts.Complete();
}
我々は仲介一時テーブルが必要ですか?
いいえ一時テーブルは必要ありません。
これは、SqlBulkCopyまたはTable Value Parameterを使用してSql Serverにデータを渡すことを検討すると言います。それはあなたの要求に依存します。
More info here on TVPs。
dotnetにはSqlTransactionクラスがあり、これを使用して開始/コミット/ロールバックできます。 https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction(v=vs.110).aspx –
はい、可能ですが、テーブル値のパラメータはこれより効率的です場合。 –