ユーザーの作成時に、ユーザー テーブルと電子メール テーブルの両方に行を挿入する必要があります。それらのいずれかで失敗する可能性があります(一意の制約)。失敗の原因を特定するにはどうすればよいですか? 私の考えでは、挿入の前にロックを使用してデータベースにクエリを実行したり、返された SqlException を解析したりしていました(これはやりたくない)。
編集:これは複数のマシンで同時に実行されることを言及する必要がありました。異なるデータベースをサポートしたいと思います。
編集 2: 私の解決策は、重複のチェックにロックを使用することになりました。ストアド プロシージャはオプションでしたが、ビジネス ロジックをデータベースに配置したくありませんでした。私は、Web ファームでの競合状態を認識していると他の人にコメントしましたが、状況がまれであるため、これ以上作業する必要はありませんでした。