2016-08-17 118 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