在SQL Server中存储计算

时间:2013-10-10 11:42:54

标签: sql sql-server sql-server-2008 calculated-columns

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

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

我的计算结果为:VALUE = COL_A + COL_B

将来,如果用户想要更改此计算,例如:VALUE = COL_A + COL_B + COL_C,则应反映此更改。

这是最好的方法吗?

谢谢,

Ujjwal Soni

2 个答案:

答案 0 :(得分:2)

您可以编写一个接受参数并返回值的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)

答案 1 :(得分:0)

您可以单独保留基表,将计算作为函数编写,然后创建一个视图,该视图将从您的表中进行选择并使用计算字段的函数。稍后,您可以在不更改表或视图的情况下更改函数中的计算。