2012-06-26 52 views
1

我正在嘗試使用TSQL的UPDATE FROM子句更新另一個表。在這樣做時,我收到一個約束錯誤。無論如何要捕捉該錯誤以確定哪一行導致問題? TRY/CATCH只輸出錯誤類型/消息。TSQL:無論如何確定兩個表更新查詢中的錯誤記錄?

我正在更新的表中有400K條記錄。有沒有更好的方法來處理這個問題?批量更新? TSQL循環第二個表? (雖然我被告知後者有嚴重的性能命中。)

謝謝你的時間。

回答

0

----更新表,並使用輸出子句

UPDATE SET TestTable的TEXTVal = '的NewValue' OUTPUT Inserted.ID, Inserted.TEXTVal,Deleted.ID插入在臨時表中的值, Deleted.TEXTVal INTO @TmpTable WHERE ID IN(1,2)

再看看在@TmpTable,