【发布时间】:2015-01-08 07:40:40
【问题描述】:
我有这样的例子,
Table1
Table2
Table21
Table22
Table23
Table2 是Table1 的子表
我写了一个存储过程Delete_Table2,它删除了所有子表Table21、Table22、Table23和Table2。
现在我正在创建删除存储过程,用于从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
【问题讨论】:
-
为什么要删除这么多表?真实的故事是什么样的?为什么不把所有东西和事务一起放在一个 proc 下?只有在需求不明确的情况下,你才能得到最好的 IDEA。
标签: sql-server function stored-procedures