TSQL-将字段从表传递到存储过程中,然后将结果存储在临时表中



我正在处理一个客户端,该客户端有一个包含十几个参数的存储过程。

我需要从数据库中的表中获取参数值,然后将这些值输入到存储过程中以获得一个数值。然后,我需要将这个值连接到SELECT语句中。

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

感谢您的任何帮助。

谢谢

您可以捕获声明变量中的参数值。类似于:

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所需的参数变量。

这是一个格式更适合作为答案的注释

您不需要创建临时表或表变量,就可以将数字结果与其他数据连接起来。以下演示了使用SELECT而不显式创建任何表的各种好奇心:

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

最新更新