すべてが共通の同じフィールドを持ついくつかのテーブルを更新する必要があります。
現在、次のようにテーブルごとに個別の更新ステートメントがあります。
try
{
using (SqlConnection conn = new SqlConnection(cCon.getConn()))
{
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "update table0 set active= 'N' where id=@id";
cmd.Parameters.Add(new SqlParameter("@id", id));
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.CommandText = "update table1 set active= 'N' where id= @id ";
cmd.Parameters.Add(new SqlParameter("@id", id));
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.CommandText = "update table2 set active= 'N' where id= @id "
cmd.Parameters.Add(new SqlParameter("@id", id));
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.CommandText = "update table4 set active= 'N' where id= @id "
cmd.Parameters.Add(new SqlParameter("@id", id));
cmd.ExecuteNonQuery();
}
}
}
コードを最適化して呼び出しを減らすことはできますか? すべての更新を 1 つのコマンドテキストにまとめて、1 回だけ実行することはできますか?
それはすべて同じパラメータなので、可能だと思いますか?または、ストアドプロシージャを作成する必要がありますか?