0

この質問に対する多くの回答を読みましたが、変更されていない列を更新しても問題はありませんが、変更は可能であり、適切な解決策があるかどうか疑問に思っています。

レコードのすべてのフィールドを更新する update proc があります。そのうちのいくつかは、現在と同じ値になる可能性があります。

私たちが抱えている問題は、このテーブルが何千もの子レコードの親であり、このテーブル フィールドのいくつかがそのインデックス付きビューにあるインデックス付きビューがあることです。更新を行うたびに、実質的に変更されていない場合でも、インデックス付きビューを維持するために多くの作業が行われます。

UPDATE SET を実行できるようにして、値が異なる場合にのみ設定する方法が必要です。他のフィールドを更新したいので、WHERE句ではありません。

動的更新ステートメントを作成する際に、Entity Framework はこのようなことをすると思いますか? 更新にストアド プロシージャを使用する ADO.NET ユーザー向けの簡単なソリューションはありますか?

ティア

4

1 に答える 1

0

あなたのコードを見ないと、あなたが現在何をしているのかを知るのはちょっと難しいですが、私はのようなものを含めますWHERE table.value != newValue

つまり

UPDATE myTargetTable
SET myTargetTable.myColumn = mySourceTable.newValue 
FROM mySourceTable JOIN myTargetTable on mySourceTable.ID = myTargetTable.ID
WHERE myTargetTable.myColumn != mySourceTable.newValue 
于 2013-03-01T09:00:34.600 に答える