2012-01-18 29 views
1

異なる変数を持つ別のストアドプロシージャ(2YearPremiumAnalysisByState)の2つのバリエーションを呼び出すストアドプロシージャ(USA2YearPremiumAnalysis)があります。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 

私は期待しています。

子プロセスはかなり複雑です。これは、親procに渡される変数と同じ変数を使用してプロシージャを呼び出すときに機能します。

2つの結果テーブルを返す親プロシージャを取得するにはどうすればよいですか?

+0

あなたの子供のprocsは 'int'を返しますか、あるいはテーブルを返すことを期待していますか? – JNK

+0

子プロセスはテーブルを返します。 –

+0

あなたのコードは、子のspから結果セットを返さなければなりません。 'SP-Child'はどのように見えますか? –

答えて

0

子プロシージャは、動的に書かれた非常に長い複数ステップのプロシージャです。 2つの問題がありました.1つは、動的SQLをNULLに設定する子プロセス内の問題でした。 2つ目は、私がトップレベルの問題をテストしていた方法です。子プロセスを手動で実行しているときに、別の番号をタイプしていたため、彼らが働いていると思ってしまっていました。

私はこれを行っていた場合、私は私の問題は、子procsの中ですぐだった知られているだろう:

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 

あなたの時間とガチョウの追跡のために申し訳ありませんありがとうございます!

2

私は、「ストアドプロシージャ間でデータを共有する方法」というタイトルErlandから、この大規模な記事の上に行くために、あなたをお勧めします - http://www.sommarskog.se/share_data.html

記事がよく、各オプションの例を挙げて説明しています。あなたはそれが役に立つと思うことを願っています。

関連する問題