我有一個SQL存儲過程,因爲某些緩存的值而永遠不會結束。但這只是調試過程後的猜測。Microsoft SQL Server在存儲過程中使用過時的值
while @poid is not NULL
BEGIN
Update Item set Sales = (Select Sales from V_ITEM_Hierarchy where [email protected]) where [email protected]
Select @poid = i.ItemID
from V_ITEM_Hierarchy t inner join Item i on (t.POID = i.POID)
where (abs(coalesce(t.Sales,0)-coalesce(i.Sales,0)) > 0.0001
END
我更新表項的值「銷售」與一個名爲「V_ITEM_Hierarchy」視圖的銷售值,然後再尋找它們是不同的值。當我通過過程進行調試時,即使銷售值因更新而不再不同,select-statement始終會返回相同的值。
我試圖插入命令「DBCC DROPCLEANBUFFERS」,但select語句仍然返回舊值。
是的,就是這樣。現在它正在工作!非常感謝。 – Preli