如何在SqlServer的使用结果从一个过程在另一个过程
我试图用
我想成立@result与[proc_Get_Frame_CourseNum]结果合并一些“选择”混合的结果相结合的过程
但它没有工作,希望有人能帮助我^ _^如何在SqlServer的使用结果从一个过程在另一个过程
>>declare @str varchar(300) >>declare @result varchar(200) >>declare @temp varchar(20) >>declare @i int >>set @str='110,120,130,140' >>set @result='' >>set @temp='' >>set @i=0 >>while @i>begin >>set @temp=substring(@str,1,3) >>set @str=substring(@str,2,len(@str)) >>set @[email protected]+ exec [proc_Get_Frame_CourseNum] @temp >>set @[email protected]+1 >>end >>select @temp
就个人而言,我会充分利用输出变量的
CREATE PROCEDURE proc_Get_Frame_CourseNum
@temp varchar(20),
@outValue varchar(50) OUTPUT
AS
BEGIN
--do stuff
--before you leave the method or do your final SELECT
SET @outValue = 'whatever your result is'
--more stuff
END
然后在你的代码,你只是去:
DECLARE @outValue VARCHAR(20)
-- rest of your code
EXEC [proc_Get_Frame_CourseNum] @temp, @outValue OUT
SET @result = @result + @outValue
或者,你可以只转储SP的结果到一个临时表,然后从它读入你的@Result变量。
你不能通过追加插入一个过程的结果。 我现在假设[proc_Get_Frame_CourseNum]
返回一个标量结果。
所以在批量的另一行(之前设置@result = @result +电话)运行exec [proc_Get_Frame_CourseNum] @temp
您的查询应该是什么样子,
声明@scalarResult = EXEC [proc_Get_Frame_CourseNum] // @临时
组@结果= @结果+ @scalarResult
'exec'的值是过程的返回代码(int类型)。这只会在'proc_Get_Frame_CourseNum'返回使用'return'语句的结果(它是一个int)时才起作用。如果它目前正在返回,例如包含标量值的单个行/列值,此方法不起作用。 – 2011-04-05 12:19:02
似乎不工作... – Lanston 2011-04-05 13:49:40
非常感谢你,下一次我会带你到我的学校的咖啡厅^ _ ^ – Lanston 2011-04-05 13:50:58