SQL Server 2008 を使用している場合は、Merge ステートメントを使用します。ただし、Insert パーツに何らかの条件が含まれている場合は使用できないことに注意してください。その場合、これを達成するための独自の方法を作成する必要があります。そして、あなたの場合、Merge ステートメントを持たない MySQL を使用しているため、そうする必要があります。
この目的で ORM レイヤー (Entity Framework など) を使用しないのはなぜですか?
いくつかの疑似コード (C#)
public int SaveTask(tblTaskActivity task, bool isInsert)
{
int result = 0;
using (var tmsEntities = new TMSEntities())
{
if (isInsert) //for insert
{
tmsEntities.AddTotblTaskActivities(task);
result = tmsEntities.SaveChanges();
}
else //for update
{
var taskActivity = tmsEntities.tblTaskActivities.Where(i => i.TaskID == task.TaskID).FirstOrDefault();
taskActivity.Priority = task.Priority;
taskActivity.ActualTime = task.ActualTime;
result = tmsEntities.SaveChanges();
}
}
return result;
}