我有一個巨大的存儲過程,我試圖優化它。基於表A列的表B的更新列
我有一個臨時表一個,與列ID。
我有一個列的主表B中標識 &一個布爾字段測試
對於所有標識的表A,我需要測試= 1表B.
例子: 一個
Id
--
1
2
3
我需要得到B表如下。 我已經在表B中的ID字段中,我只需要更新 檢測柱 乙
Id Test
-- ----
1 1
2 1
3 1
4
5
6
我目前通過表一個使用while循環循環併爲每個ID 我正在更新表B中的測試列。
WHILE (1 = 1)
BEGIN
-- Exit loop if no more Transactions
IF @@ROWCOUNT = 0 BREAK;
Update [B]
set Test = 1
where Id = (SELECT TOP 1 Id
FROM #B
WHERE Id > @Id1
ORDER BY Id)
END
PS:@ Id1是存儲過程的輸入參數。
我想不出有任何其他有效的方法,但 我的查詢花了很多時間來運行.. 請讓我知道是否有更好的方法來做同樣的事情。
謝謝您的解決方案! – CodeNinja