2016-08-17 114 views
0

我需要在T-SQL中编写脚本(可能会创建一个存储过程?),它在执行时将执行一系列存储过程。如何创建存储过程的脚本?

我想象这样的事情

CREATE PROCEDURE dbo.sproc_execute 
AS 
EXEC sp_CustomSproc 'param1' , 'param2' 
GO 
EXEC sp_CustomSproc 'paramA' , 'paramB' 
GO 
EXEC sp_CustomSproc 'paramX' , 'paramY' 
GO 
EXEC sp_CustomSproc 'param3' , 'param4' 
GO 

每个参数返回从同一个存储过程不同的结果,因此绝对需要。运行它看起来像是有效的,但它是正确的方法吗?

+5

刚刚删除'GO's – Lamak

+0

最终输出是什么? – p2k

+0

我们有一个表中的数据,参数决定了该表的输出,然后被添加到一个新表中以进行操作。 – inFAM1S

回答

1

这样写

CREATE PROCEDURE dbo.sproc_execute 
AS 
BEGIN 

EXEC sp_CustomSproc 'param1' , 'param2' 
EXEC sp_CustomSproc 'paramA' , 'paramB' 
EXEC sp_CustomSproc 'paramX' , 'paramY' 
EXEC sp_CustomSproc 'param3' , 'param4' 

END 
0

方法,但你当然可以反复调用同一个进程内,考虑一下,如果它不会是更好地重写PROC使用表值参数,然后发送的参数你要。这个选择可能取决于这个进程当前被其他进程调用的程度。显然,如果这已经在很多地方被使用,那么这可能是不实际的。但是如果这是一个尚未实现的新处理器,那就考虑使用这种方法。这样,如果您需要在将来某个时间改变多个参数,则不必编写新的proc来调用它。

+0

SPROC是一个临时措施,直到我们完成新组件的开发。 SPROC也是由一个比我自己知识渊博的人写的,所以我在一部分时间里重新创建一个新的。但是,它只能在一个地方使用,但似乎不值得花时间完成返工,因为它会在几个月内在这里被替换。客户只需要产品在此期间工作。 感谢您的评论,我还有很多与SQL有关的学习。 – inFAM1S