2012-05-10 11 views
1

私はクエリを持っていて、私が呼び出しているprocの結果ではなく、行数を表示します。例えばT-SQL結果を非表示にしてRowCountだけを表示

この:

exec GetSomething 
    @UserID = 112233, 
    @MaxAge = 50, 
    ... etc. 

SET @Count = @@rowcount 
SELECT @Count 

は数もカウントが選択される前にレコードを結果の最初のレコードのリストだけではなくを返します。

このカウントをまだ行うことはできますが、レコードセットの結果は表示できません。

+1

変更を行を返す代わりにカウント(*)を行うクエリ?使用しない行を返すことは、リソースの無駄です。 –

+0

rowcountはうまくいきます... – PositiveGuy

+0

私はrowcountを使います。 RowCountは問題ではありません。私はprocの結果をダンパーする必要があるので、クエリアナライザの結果には表示されませんが、Select SELECT @ Countには現在表示されている値が表示されます。私はちょうどSELECT @Countの結果を見るだけで、その前にprocの呼び出しによって生成されたレコードと一緒に行くのではありません。 – PositiveGuy

答えて

1
DECLARE @Something TABLE (
    ... 
) 

INSERT INTO @Something 
EXECUTE GetSomething 
    @UserID = 112233, 
    @MaxAge = 50, 
    ... etc.; 

SET @Count = @@rowcount 
SELECT @Count 
+0

すごく感謝しています。 – PositiveGuy

0

あなたはOPENROWSETを使用してみてくださいかもしれないが、あなたはそれが有効になって確認する必要があります:有効にOPENROWSETへ

SELECT count(*) FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 
    'EXEC GetSomething') 

sp_configure 'Show Advanced Options', 1 
GO 
RECONFIGURE 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1 
GO 
RECONFIGURE 
GO 

はOPENROWSETでMSDNを参照してください:http://msdn.microsoft.com/en-us/library/ms190312.aspx

+0

@@ rowcountを使用するのが好きです – PositiveGuy

+0

あなたの目標がクエリを実行し、次に@@ rowcountを実行することであれば、私の知る限り結果を隠す方法はありません。 – brendan

関連する問題