我有一个查询,只想显示行数,而不是我正在调用的 proc 的结果。
例如这个:
exec GetSomething
@UserID = 112233,
@MaxAge = 50,
... etc.
SET @Count = @@rowcount
SELECT @Count
不仅返回计数,而且在选择计数之前返回第一个记录集的结果记录列表。
我怎样才能仍然进行此计数但不显示记录集结果?
我有一个查询,只想显示行数,而不是我正在调用的 proc 的结果。
例如这个:
exec GetSomething
@UserID = 112233,
@MaxAge = 50,
... etc.
SET @Count = @@rowcount
SELECT @Count
不仅返回计数,而且在选择计数之前返回第一个记录集的结果记录列表。
我怎样才能仍然进行此计数但不显示记录集结果?
DECLARE @Something TABLE (
...
)
INSERT INTO @Something
EXECUTE GetSomething
@UserID = 112233,
@MaxAge = 50,
... etc.;
SET @Count = @@rowcount
SELECT @Count
您可以尝试使用 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
请参阅 OPENROWSET 上的 MSDN:http: //msdn.microsoft.com/en-us/library/ms190312.aspx