2012-01-18 92 views
1

我有一個存儲過程(USA2YearPremiumAnalysis),它調用具有不同變量的另一個存儲過程(2YearPremiumAnalysisByState)的兩個變體。SQL Server存儲過程調用多個存儲過程並且無法返回結果

所以對於SP-家長的代碼如下所示:

CREATE PROCEDURE USA2YearPremiumAnalysis 
    @ContractYear1 INT 
    , @importDate1 DATETIME 
    , @importDate2 DATETIME 
    , @EnrollmentYear1 INT 
    , @EnrollmentYear2 INT 
    , @EnrollmentMonth1 INT 
    , @EnrollmentMonth2 INT 
AS 
    EXECUTE MAInfo.[2YearPremiumAnalysisByState] 
    @ContractYear1, 
    @importDate1, @importDate2, 
    @EnrollmentYear1, @EnrollmentYear2, 
    @EnrollmentMonth1, @EnrollmentMonth2, 
    0 

    EXECUTE MAInfo.[2YearPremiumAnalysisByState] 
    @ContractYear1, 
    @importDate1, @importDate2, 
    @EnrollmentYear1, @EnrollmentYear2, 
    @EnrollmentMonth1, @EnrollmentMonth2, 
    1 
GO 

這不返回任何數據。然而,如果我打電話:

EXECUTE MAInfo.[2YearPremiumAnalysisByState] 
    @ContractYear1, 
    @importDate1, @importDate2, 
    @EnrollmentYear1, @EnrollmentYear2, 
    @EnrollmentMonth1, @EnrollmentMonth2, 
    0 

    EXECUTE MAInfo.[2YearPremiumAnalysisByState] 
    @ContractYear1, 
    @importDate1, @importDate2, 
    @EnrollmentYear1, @EnrollmentYear2, 
    @EnrollmentMonth1, @EnrollmentMonth2, 
    1 

我得到了我所期望的。

Child proc相當複雜。當你用傳遞給父進程的相同變量調用該過程時,它可以工作。

如何獲取父過程以返回2個結果表?

+0

你的孩子是否會返回'int'或者你期望得到一個表? – JNK 2012-01-18 21:43:01

+0

Child procs返回表。 – 2012-01-18 21:46:22

+0

您的代碼應該返回來自子sp的結果集。 「SP-Child」是什麼樣的? – 2012-01-19 06:39:15

回答

0

子程序是一個動態編寫的非常長的多步程序。有兩個問題,一個是導致動態sql設置爲NULL的子過程中的問題。第二個是我測試我的最高級別問題的方式:當我手動運行它們時,我爲子進程鍵入了不同的數字,因此被愚弄到認爲它們正在工作。

如果我這樣做,我會立即知道我的問題是在孩子的特效:

DECLARE @ContractYear1 INT = 2011 
DECLARE @importDate1 DATETIME = '7/27/2011 12:00:00 AM' 
DECLARE @importDate2 DATETIME = '6/7/2010 12:00:00 AM' 
DECLARE @EnrollmentYear1 INT = 2011 
DECLARE @EnrollmentYear2 INT = 2010 
DECLARE @EnrollmentMonth1 INT = 7 
DECLARE @EnrollmentMonth2 INT = 9 

--EXEC MAInfo.USA2YearPremiumAnalysis @ContractYear1, -- int 
-- @importDate1, -- datetime 
-- @importDate2, -- datetime 
-- @EnrollmentYear1, -- int 
-- @EnrollmentYear2, -- int 
-- @EnrollmentMonth1, -- int 
-- @EnrollmentMonth2-- int 

EXECUTE MAInfo.[2YearPremiumAnalysisByState] 
    @ContractYear1, 
    @importDate1, -- datetime 
    @importDate2, -- datetime 
    @EnrollmentYear1, -- int 
    @EnrollmentYear2, -- int 
    @EnrollmentMonth1, -- int 
    @EnrollmentMonth2, 
    0 

EXECUTE MAInfo.[2YearPremiumAnalysisByState] 
    @ContractYear1, 
    @importDate1, @importDate2, 
    @EnrollmentYear1, @EnrollmentYear2, 
    @EnrollmentMonth1, @EnrollmentMonth2, 
    1 

謝謝您的時間,對不起,鵝追逐!

相關問題