2010-11-26 39 views

回答

1

表值參數是一個不錯的選擇,我個人更喜歡創造在調用存儲過程中臨時表,並在被調用過程從臨時表中讀取。

所以代碼,這將是:

CREATE PROC DoStuff 
AS BEGIN 
    CREATE TABLE #tobeinserted (Data1 INT, Data2 INT...) 
    EXEC InsertRows 
END 

CREATE PROC InsertRows 
AS BEGIN 
    INSERT INTO Table1 SELECT * FROM #tobeinserted 
END 

這個工作可靠,因爲臨時表有一生的時間,直到它們被創建退出存儲過程。此方法的一個優點是臨時表與表值參數不同,可以定義(聚集)索引,因此這些表中的查找速度可能非常快。缺點是不能同時運行SP的兩個實例。

相關問題