- 書いたきっかけ
- 前提事項
- 使い方
- そのほか
■書いたきっかけ
一括updateが一括insertのようにスマートにできず、
パフォーマンス改善に悩んで使用した。
一括で取得したデータをC#側でコード処理、既存データにupdateかけたかった。
■前提事項
■使い方
DataTable型データをSQL実行時にstruct型で引き渡す。
テーブルとして使用ができるのでjoinしてupdateSQLを発行する。
string sql = "";
sql += " UPDATE t SET x = 'XX' FROM test t ";
sql += " INNER JOIN @tmptable tmp ON t.xxx = tmp.xxx "
SqlParameter param2 = new SqlParameter
("@tmptable", SqlDbType.Structured, updateTmptable);
使用方法としては↑だが、実際に実行するには事前にSQLServer側にTableTypeを作成しておく必要がある。
実行前に確実に作成しておきたい場合は、以下と組み合わせればよい
■そのほか
〇参考
↓は採用しなかったが、使えそうなもの