0

@property_id、@property_component_id、@return_as_xml の 3 つのパラメーターに基づいて xml を生成するストアド プロシージャがあります。@return_as_xml の値は、すべてのレコードで同じ 0 になります。

これを変更したので、特定の条件に基づいて複数のプロパティ レコード、つまりアクティブなリース プロパティに対して実行する必要があります。property と property_component の間には一対多の関係が存在するため、プロパティは複数の property_component を持つことができ、少なくとも 1 つの対応するレコードを持ちます。

プロパティ テーブルのアクティブ フィールドとリース フィールドに基づいて、必要なレコードを選択する必要があります。対応する property_id が存在する property_component テーブルから、対応する property_component_id を選択します。次に、各結果行をループして、各行の新しいパラメーターを渡すストアド プロシージャを実行します。

ストアド プロシージャは、単一のプロパティに対して xml を返す必要がある asp.net コンソール アプリケーションから実行されるため、既に持っている以上に変更したくありません。つまり、ストアド プロシージャを変更して xml を返す必要はありません。複数のプロパティの場合。

私のストアド プロシージャの実行は、標準的に生成された SQL サーバー コードです。

DECLARE @return_value int

EXEC    @return_value = [dbo].[p_CPGUploader__FetchXMLForProperty_RCA]
    @property_id = 106016,
    @property_component_id = 108382,
    @return_as_xml = 0

SELECT  'Return Value' = @return_value
GO

説明したシナリオで機能するようにこれを変更するにはどうすればよいですか? レコードセットを選択してから、選択の各行の値に基づいてストアド プロシージャを実行するループを実行するにはどうすればよいですか? 私はasp.netのバックグラウンドを持っており、SQL Serverのスキルは非常に限られているため、どんな支援も大歓迎です. 私は SQL Server 2008 R2 を使用していますが、関連性がある場合、元のストアド プロシージャは 2004 年に作成されたと思います。

4

1 に答える 1