在SQL Server中存储计算结果

问题描述 投票:1回答:2

我有一个应用程序,其中数据库中有1000列,每个列值都是基于公式计算的。用户可以修改此公式。我需要一种将这些计算映射到数据库中特定列的方式,以便用户可以对其进行编辑。

例如:我的表有3列COL_A, COL_B & COL_C

我有一个计算公式为:VALUE = COL_A + COL_B

[将来,如果用户要更改此计算,请说:VALUE = COL_A + COL_B + COL_C,则此更改应得到反映。

哪个是最好的方法?

谢谢,

Ujjwal Soni

sql sql-server sql-server-2008 calculated-columns
2个回答
0
投票

您可以不使用基表,将计算写为函数,然后创建一个视图,该视图将从表中选择并将函数用于计算字段。以后,您可以在函数中更改计算,而无需更改表或视图。


0
投票

您可以编写一个接受参数并返回值的SQL标量函数。然后可以通过传递必要的参数来调用该函数。以后可以修改该功能以满足您的需求。下面是创建函数以及如何调用它的示例。

-- Create the function
CREATE FUNCTION [Rmas].[functionName](@valA int, @valB int)
RETURNS int
AS
BEGIN
  DECLARE @answer int;
  SELECT @answer = @valA + @valB;
RETURN @answer
END

-- Call the function to access the calculation
SELECT [Rmas].[functionName](2,3)
© www.soinside.com 2019 - 2024. All rights reserved.