私はやや不満な問題を抱えています。INSERTとUPDATEの実行ステータス - MS SQL Server
下位レベル:プロシージャ内のINSERTまたはUPDATEクエリが成功したかどうかを知りたいです。私はすべてのクエリ(SELECTとは別に)に返されるステータスがあるかどうかは100%確信していません。私は、SQL Serverがすべてのストアドプロシージャに戻り値の型を与えていることを知っています。現在、すべてのSQL Serverでは戻り値の型がIntegerです。
中間レベル:Entity Frameworkを使用して、保存されたprocsを呼び出し、proc実行からサービスに変換された(intから)boolean値としてステータスを返すことができます。
より上のレベル:私のサービスから返されたブール値を使用して、実行中のタスクのMVCコントローラに報告することができるようにします。私の問題の最も重要な層の上に
、私は次のコードを持っている:
public virtual ObjectResult<int> Proc_AddApprovalProcessor(string userId, string approverId, int approvalOrder)
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<int>(
"EXECUTE [dbo].[Proc_AddApprovalProcessor] @userId, @approverId, @approvalOrder",
new SqlParameter { ParameterName = "userId", Value = userId },
new SqlParameter { ParameterName = "approverId", Value = approverId },
new SqlParameter { ParameterName = "approvalOrder", Value = approvalOrder }).FirstOrDefault();
}
おそらく、テーブルにトリガーがあると誤解を招く恐れがあると言えるでしょう。 –
@Evaldas Buinauskasこれは本当ですか?ほとんどの私の更新/挿入/削除ステートメントは、アーカイブテーブルのエントリをトリガし、私は@@ ROWCOUNTに問題があったことはありません –
多分より複雑なトリガに適用されますが、この質問は、混乱のためにhttp://stackoverflow.com/questions/7005225/sql-server-does-trigger-affects-rowcount soryに答えているようです:) –