SQL:在存储过程中使用存储过程

时间:2011-04-11 17:51:03

标签: sql stored-procedures truncate

我有一些存储过程会向用户返回相同的数据集(相同的列)。调用的存储过程取决于某些条件。这些存储过程相当密集,并且由系统的每个用户运行。我想创建调用每个过程的存储过程并将数据存储在单独的表中。然后,我将每隔5分钟左右运行一次这个新的存储过程,让用户从新表中拉出来。

T_OutboundCallList是一个永久表,其列与两个存储过程返回的列相同。

我想要以下内容,但是当我尝试运行它时,它只是连续运行而且我必须停止该程序。

BEGIN

TRUNCATE TABLE T_OutboundCallList


INSERT T_OutboundCallList EXECUTE p_LeadVendor_GetCallsForCallList

INSERT T_OutboundCallList EXECUTE p_CallLog_GetAbandonedCallsCallList

END

每个过程(* CallList)返回一个要进行的调用列表,我确实希望它们按此顺序输入到新表中(LeadVendor在AbandonedCalls之前调用)。我还需要在添加呼叫之前清除该表,因为列表中可能需要更高的新呼叫。

我没有看到这个程序有什么问题吗?

谢谢, 布赖恩

1 个答案:

答案 0 :(得分:2)

如果没有看到你的* CallList过程中的代码,很难说你遇到了什么问题。您应该在嵌套过程中使用insert命令。您可以使用过程的结果来插入数据,但不能像上面那样。它正在使用OPENROWSET,我认为你的建议会更好。