我正在尝试将结果与一些“选择”相结合 我想将@result与[proc_Get_Frame_CourseNum]程序的结果相结合 但它没有用,希望有人可以帮助我^ _ ^
>>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 @result=@result+ exec [proc_Get_Frame_CourseNum] @temp >>set @i=@i+1 >>end >>select @temp
答案 0 :(得分:0)
您无法通过附加一个过程来插入一个过程的结果。
我现在假设[proc_Get_Frame_CourseNum]
返回标量结果。
所以在另一行批处理中运行exec [proc_Get_Frame_CourseNum] @temp
(在设置@result = @result + call之前)
您的查询应该如下,
声明@scalarResult = exec [proc_Get_Frame_CourseNum] @temp
设置@ result = @ result + @scalarResult
答案 1 :(得分:0)
就个人而言,我会使用输出变量
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变量中。