我需要更新一些具有相同字段的表。
现在我对每个表都有一个单独的更新语句,如下所示:
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 个命令文本中并且只执行一次?
因为它的参数都是一样的,我认为这应该是可能的?还是我应该只做一个存储过程?