我正在与一个拥有大约十几个参数的存储过程的客户一起工作。
我需要从数据库中的表中获取参数值,然后将这些值提供给存储过程以获取数字值。然后我需要将此值连接到SELECT语句。
我知道我必须构建一个临时表,以便用我的select语句加入SP结果,但这对我来说是全新的,可以使用一些帮助。主要关注如何将字段值提供给SP。我也希望Temp表包含几个参数作为字段,所以我可以将它加入我的select语句。
任何和所有帮助表示赞赏。
谢谢
答案 0 :(得分: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临时表和参数变量。
答案 1 :(得分:0)
这是一个更好地格式化为答案的评论。
您无需创建临时表或表变量即可将数字结果与其他数据相关联。以下演示了使用SELECT
s而不显式创建任何表的各种好奇心:
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