Phi*_*hil 9 sql sql-server stored-procedures sql-server-2005 sql-server-2008
直升机,
我的问题是我在SQL Server中有一个存储过程,它返回一个字段的计数.我想将此存储过程的结果存储在不同存储过程的变量(标量?)中.
sp_My_Other_SP:
CREATE PROCEDURE [dbo].sp_My_Other_SP
@variable int OUTPUT -- The returned count
AS
BEGIN -- SP
SET NOCOUNT ON;
SET @SQL = "SELECT COUNT(*) FROM blah"
EXEC(@SQL)
END -- SP
Run Code Online (Sandbox Code Playgroud)
我目前这样做:
DECLARE @count int
EXEC sp_My_Other_SP @count OUTPUT
Run Code Online (Sandbox Code Playgroud)
然后我就像使用它一样
IF (@count > 0)
BEGIN
...
END
Run Code Online (Sandbox Code Playgroud)
然而,它返回其他存储过程结果以及主要存储过程结果,这是我的.NET应用程序中的问题.
-----------
NoColName
-----------
14
-----------
MyCol
-----------
abc
cde
efg
Run Code Online (Sandbox Code Playgroud)
(上面是对返回的结果集的尝试表示)
我想知道是否有办法将存储过程的结果存储到一个不输出它的变量中.
谢谢你的帮助.
Ada*_*hes 13
您可以将存储过程的结果捕获到临时表中,以便调用存储过程不会返回它.
create table #temp (id int, val varchar(100))
insert into #temp
exec sp_My_Other_SP @value, @value, @value, @count OUTPUT
Run Code Online (Sandbox Code Playgroud)