我有一個存儲過程,只需幾個步驟。其中兩個步驟需要使用DECLARE
TABLE
,但我不需要同時使用這些表格。爲SQL存儲過程刪除或聲明新的臨時表是否更好?
這兩個表都有2個BIGINT
列,最多可以有100行。
將兩個表格或DELETE
聲明並重新使用它是更好的做法嗎?
編輯:如果你有興趣,這是一個後續的this question
我有一個存儲過程,只需幾個步驟。其中兩個步驟需要使用DECLARE
TABLE
,但我不需要同時使用這些表格。爲SQL存儲過程刪除或聲明新的臨時表是否更好?
這兩個表都有2個BIGINT
列,最多可以有100行。
將兩個表格或DELETE
聲明並重新使用它是更好的做法嗎?
編輯:如果你有興趣,這是一個後續的this question
設計將只有在創建第二個表一個非常小的開銷存儲過程。但是,如果它們具有相同的列,並且不需要數據,那麼只需刪除並重用。如果您有用於cursor free looping (last code example in this answer)的標識列,則可能需要創建第二個標識列。
首先,你不能truncate
表變量。您需要改爲delete from
。對於如此少量的行,我認爲這種方式會造成很小的差異。隨你的代碼更易讀取。
它的遊標是免費的,使用'MERGE'語句。沒有循環,只需幾個步驟。我懷疑我的具體用途在性能上沒有明顯的差異,但我只是在尋找關於未來處理這個潛在更大表的通用指南。 – Matthew 2010-09-01 15:43:18
我會概率不會使用表變量@variable用於大數據,常規#Temp表會更好地執行大量的行 – 2010-09-01 15:47:09
您將在哪裏繪製使用變量而不是#Temp的行? – Matthew 2010-09-01 15:49:30