SQL Server语言 - 在选择中执行 SP



我有一个从存储过程中填充的 Temp 表。 一旦数据在临时表中,我就会使用它来运行计算并填充其他字段。

例:

CREATE TABLE #Result1 (
  SOrder integer,
  Var1 double,
  Var2 double,
  Var3 double,
  Calc1 double,
  Calc2 double )
--Fills the Temp Table initially
Insert #Result1
(Select sorder, var1, var2, var3, 0,0,0 from myTable)

--Fills with calculation stuff
Select SOrder = 0,
       Calc1 = Var1/Var2 * 100
       Calc2 = (Var2-Var1)/Var3 * 100
From #Result1

我希望能够做的是:

--Fills with SP stuff
Select SOrder = 0,
       Calc1 = exec spLocal_CalcMetric (Var1, Var2)
       Calc2 = exec spLocal_CalcMetric (Var1, Var2)
From #Result1

有没有办法做这样的事情来更新临时表,从 SP 返回?

你可以

用一个function来做到这一点,而不是一个procedure,但你所做的只是使这里的简单选择复杂化。函数也可能是性能问题。但是,您可以这样做:

CREATE FUNCTION dbo.Local_CalcMetric 
(
    @var1 DOUBLE, 
    @var2 DOUBLE, 
    @var3 DOUBLE
)
RETURNS DOUBLE
AS 
BEGIN
    RETURN (@var2-@var1)/@var3 * 100
END

并使用它:

SELECT SOrder = 0,
       Calc1 = dbo.Local_CalcMetric (Var1, Var2, Var3)
       Calc2 = dbo.Local_CalcMetric (Var1, Var2, Var3)
FROM #Result1