0

私のストアド プロシージャ (SQL Server 2005) は、特に、1 つのフィールドがクエリによって返される行数に依存するデータセットを返します。@@ROWCOUNT を取得できる単純な最初のクエリを作成できますが、その場合、プロシージャは 2 つのセットを返しますが、これは私が望んでいるものではありません。

最初のクエリを WITH ステートメントに入れようとしましたが、行数を抽出して 2 番目のクエリで使用できる変数に入れる構文が見つかりませんでした。別の方法は、最初のクエリから @@ROWCOUNT を取得し、2 番目のクエリの結果のみを返すようにプロシージャに指示することです。

おそらくそれを行うためのより良い方法がありますが、SQLに関する私の専門知識はかなり限られています...

助けてくれてありがとう!

4

1 に答える 1

3

これはあなたが探しているものですか?そうでない場合は、問題をより詳細に説明してください(おそらく、コードスニペットを使用して)

    alter procedure ComplicatedStoredProcedure as
    begin
        declare @lastQueryRowCount int

        -- Storing the number of rows returned by the first query into a variable.
        select @lastQueryRowCount =
            -- First resultset (not seen by caller).
            (select count(*) from A where ID > 100)

        -- Second resultset. This will be the actual result returned from the SP.
        select * from B where SomeDependentField > @lastQueryRowCount
    end
于 2012-02-26T17:32:53.757 に答える