我目前有一个查询,它根据前一个查询的结果在临时表中运行n次插入。放入临时表的结果来自一个sproc。
我还想在表中插入一个正在使用的变量(但不在sproc中使用)。例如:
--somewhere up top
Declare @userID int --This is used to get info before the important part
Declare @someOtherID int --This is passed into the sproc
--Some stuff happens here that is unrelated to question
--Important part
while (@@rowcount > 0)
begin
insert @tmp2 exec spThisSprocDoesntContainOrCareAboutUserID @someOtherID
delete from @tmp where [someID]=@someOtherID
select top 1 @id=[id], @someOtherID=[someID] from @tmp
end
SELECT * FROM @tmp2
我想要做的还是在@ tmp2的每一行中插入上一节中使用的userID。像
这样的东西insert @tmp2 @userID + exec spThisSprocDoesntContainOrCareAboutUserID @someOtherID
显然,这不会奏效。但是,这是我想要做的一般想法。
有人对此有任何建议吗?
(请注意,我不想修改sproc /制作一个类似的变量,也可以将变量传递回结果,如果我能帮助它的话。不是不可能,只是不愿意到)
答案 0 :(得分:1)
你可以通过一个额外的步骤(如你所提到的那样在sp中没有任何修改)
insert @tmp3 exec spThisSprocDoesntContainOrCareAboutUserID @someOtherID
insert @tmp2 Select @userId, field1, field2 from @temp3