2012-05-10 2 views
1

J'ai une requête et je veux juste que le nombre de lignes apparaisse, pas les résultats du processus que j'appelle.Masquer les résultats T-SQL et afficher uniquement RowCount

Par exemple ceci:

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

SET @Count = @@rowcount 
SELECT @Count 

renvoie non seulement le nombre mais aussi la première liste de dossiers d'enregistrements de résultat avant que le compte est sélectionné.

Comment puis-je toujours faire ce compte mais ne pas afficher les résultats du jeu d'enregistrements?

+1

changer la requête pour faire un compte (*) au lieu de retourner des lignes? Le retour des lignes que vous n'utiliserez jamais est une perte de ressources. –

+0

rowcount fonctionne bien ... – PositiveGuy

+0

J'aime utiliser rowcount. Le RowCount n'est pas le problème. J'ai juste besoin d'amortir les résultats de la proc pour qu'elle n'apparaisse pas dans les résultats de l'analyseur de requêtes mais que Select SELECT @ Count affiche la valeur qu'elle affiche actuellement. Je veux juste voir le résultat de SELECT @Count seulement, pas les enregistrements qui vont avec ce qui est produit par l'appel du proc avant lui. – PositiveGuy

Répondre

1
DECLARE @Something TABLE (
    ... 
) 

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

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

idée géniale merci. – PositiveGuy

0

Vous pouvez essayer d'utiliser OPENROWSET mais vous devez vous assurer qu'il est activé:

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

ENABLED OPENROWSET:

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

Voir MSDN sur OPENROWSET: http://msdn.microsoft.com/en-us/library/ms190312.aspx

+0

J'aime utiliser @@ rowcount – PositiveGuy

+0

Si votre objectif est d'exécuter la requête, alors exécutez @@ rowcount, alors à ma connaissance, il n'y a aucun moyen de cacher les résultats. – brendan