2015-01-08 101 views
2

我有例如這樣的,選擇記錄和刪除使用存儲過程

Table1 
Table2 
Table21 
Table22 
Table23 

Table2Table1

子表我已經寫了一個存儲過程Delete_Table2這將刪除所有子表,Table21Table22,還有Table23Table2

現在我創建從Table1像刪除存儲過程刪除記錄:

Create PROC [dbo].[Delete_Table1] 
    @Table1Id int 
AS 
BEGIN 
    BEGIN TRAN delete_table1_trans 
     --Select Table2ID from Table2 where Table1Id = @Table1ID 
     --loop records and EXEC Delete_Table2 @param 

    COMMIT TRAN delete_table1_trans 
END 

什麼將是最好的主意?我可以使用遊標,但試圖找出一個好主意,就像在select語句中調用函數一樣。

Select DELETE_Table2 (Table2Id) 
from Table2 
where Table1Id = 1 
+0

爲什麼你會想刪除這麼多表?什麼是真正的故事是怎樣的?你爲什麼不把所有事情都放在一起進行交易?只有在需求不明確的情況下才能獲得最好的IDEA。 – KumarHarsh

回答