0

我正在与一个具有大约十几个参数的存储过程的客户合作。

我需要从数据库中的表中获取参数值,然后将它们输入存储过程以获取数值。然后我需要将此值加入到 SELECT 语句中。

我知道我必须构建一个临时表才能将 SP 结果与我的 select 语句结合起来,但这对我来说是全新的,可以使用一些帮助。主要关注如何将字段值输入 SP。我还希望 Temp 表包含几个作为字段的参数,这样我就可以将它加入到我的 select 语句中。

任何和所有的帮助表示赞赏。

谢谢你

4

2 回答 2

2

您可以在声明的变量中捕获参数值。就像是:

DECLARE @Parm1 int, @Parm2 varchar(50) -- Use appropriate names and datatypes

SELECT @Parm1 = Parm1ColumnName, @Parm2=Parm2ColumnName
FROM TableWithParmValues
-- Include a WHERE condition if appropriate

DECLARE @ProcOutput TABLE(outputvalue int) -- use appropriate names and datatypes to match output

INSERT @ProcOuptut
EXECUTE MyProc @ProcParm1 = @Parm1, @ProcParm2 = @Parm2 -- Use appropriate names

然后使用 @ProcOutput 临时表,并根据需要使用 SELECT 参数变量。

于 2012-08-28T17:02:01.430 回答
0

这是一个更好地格式化为答案的评论。

您无需创建临时表或表变量即可将数值结果与其他数据连接起来。下面演示了使用SELECTs 而不显式创建任何表的各种好奇心:

declare @Footy as VarChar(16) = 'soccer'
select * from (
  select 'a' as Thing, 42 as Thingosity
  union all
  select *
    from ( values ( 'b', 2 ), ( 'c', 3 ), ( @Footy, Len( @Footy ) ) ) as Placeholder ( Thing, Thingosity )
  ) as Ethel cross join
  ( select 42 as TheAnswer ) as Fred
于 2012-08-28T17:33:51.897 回答