Upsert(insertまたはif exists、then update)プロシージャがデータベースプログラミングで悪い習慣とみなされているかどうかを調べます。私はそれがどんな妥当性も持っているなら、SQLサーバで働きます。データベースのアップアップ - 良いか悪い練習ですか?
数ヶ月前に働いていた場所では、常駐DBの指導者は新しく書かれたdbコーディング標準(ほとんど私が同意した)でUpsertsを避けるべきだと述べました。
私は本当にこれについての論理的な理由を見ることはできませんし、自分自身が合理的に良いプログラミング実践を意識していると考えてください。私はそれらが直進的なデータ管理に役立ち、過剰なストアドプロシージャ番号を避けるのに役立つと思います。
これについての結論に至るのに役立ついくつかの洞察力/議論を探してください。
ありがとうございました。コメントに応答して
更新:私は、データベース内のドメインエンティティデータ表現の作成または更新された参照
特定の文脈。たとえば、データベース内の「Person」テーブルの表現として「Person」オブジェクトが存在するとします。私は単に、新しいPersonを作成するためのメカニズム、または既存のPersonを更新するためのメカニズムが必要です。ここでは、Upsertストアドプロシージャ、またはUpdate用とInsert用の2つの独立したストアドプロシージャを作成するオプションがあります。
anyonesビューの利点や欠点はありますか?
Oracleの観点からは、代わりにMERGE文を使用します。 – DCookie
MERGEもSQL Serverに存在します(2005+私は信じています) – RPM1984