2016-04-14 22 views
0

テーブルを返すストアドプロシージャがあります。私はちょうどレコードの数が可能ストアドプロシージャから返されるテーブルのレコード数を取得する

私の手順で欲しい

create procedure Test 
as begin 
select * From Student 
end 

execのテスト レコードが出て、私は

NBのカウントをしたい を置く与える:私はSPを必要としますselect文の結果を返します。別の場所では、spによって返されたレコードの数が必要です。また、studentテーブルの列は動的です。

私はストアドプロシージャを変更せずに答えを期待しています。

+0

使用 'COUNT(*)' .. –

+0

@vkp私は私の質問 –

答えて

1

以下のような一時テーブルにデータを選択することができます。ただし、これを行うにはOPENQUERYを使用する必要があります。また、サーバー上でデータアクセスを有効にする必要があります。

Exec sp_serveroption 'ServerName', 'data access', 'true'

SELECT * INTO #TempTable 
FROM OPENQUERY("ServerName", 'EXEC Test') 

SELECT COUNT(*) FROM #TempTable 
+0

を編集した、私はすでにこれを試み、これは可能ですが、学生の表の列は私のscnarioのための動的である(それが要件の変更ごとに変更することができます) –

+0

私もこれを試してみましたが、これは機能のために可能でしたがspのために働かなかった –

+0

申し訳ありません@mike私はすでにspのために役に立たなかった。 sp –

0

NB:私はselect文の結果を返すために、SPを必要としています。

ストアードプロシージャはそのまま使用してください。それは、私が学生のテーブルにSPと 列によって返されるレコードの数が動的である必要がある別の場所で

create procedure Test 
as begin 
select * From Student 
end 

です。

この別の場所が別のSPの場合は、rowcountを使用してください。

EXEC [sp_WhateverTheSPNameIs] 
select @@rowcount 

@@RowCountについて読んでください。これはあなたが必要なすべてです。

+0

テーブル内のフィールドが動的であるという質問があるため、これは機能しません。フィールド名がわからない場合は、グループ化するフィールドを指定します。 –

+0

申し訳ありません@ satwik、私は質問を簡潔にするために1つの選択陳述を使用しました。実際には、いくつかのマスターテーブルから来るすべての列と約20列の私は、すべての列でグループ化すれば出力として期待しています。私のパフォーマンスも低下します。 sp –

+0

@NithilaShanmugananthanを変更せずに回答を期待しています。答えを編集しました。その中の編集セクションを確認してください。 –

関連する問題