2012-05-10 47 views
1

我有一個查詢,只想要顯示行數,而不是來自我打電話的過程的結果。隱藏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,但你必須確保它的啓用:

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

要啓用OPENROWSET:

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

請參閱MSDN上OPENROWSET:http://msdn.microsoft.com/en-us/library/ms190312.aspx

+0

我喜歡使用@@ rowcount – PositiveGuy

+0

如果您的目標是運行查詢,然後運行@@ rowcount,那麼就我所知,無法隱藏結果。 – brendan