在SQL Server中存储计算

在SQL Server中存储计算,sql,sql-server,sql-server-2008,calculated-columns,Sql,Sql Server,Sql Server 2008,Calculated Columns,我有一个应用程序,其中数据库中有1000列,每个列的值都是根据公式计算的。此公式可由用户修改。我需要一种方法来将这些计算映射到数据库中的特定列,以便用户可以对其进行编辑 例如:我的表格有3列COL\u A、COL\u B和COL\u C 我的计算结果是:VALUE=COL\u a+COL\u B 将来,如果用户希望更改此计算,例如:VALUE=COL\u a+COL\u B+COL\u C,则应反映此更改 哪种方法最好 谢谢 Ujjwal Soni您可以不使用基表,将计算作为函数写入,然后创建一

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

例如:我的表格有3列
COL\u A、COL\u B和COL\u C

我的计算结果是:
VALUE=COL\u a+COL\u B

将来,如果用户希望更改此计算,例如:
VALUE=COL\u a+COL\u B+COL\u C
,则应反映此更改

哪种方法最好

谢谢


Ujjwal Soni

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

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

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

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

我希望在应用程序中而不是在SQL Server中这样做。要在SQL Server中执行此操作,需要动态SQL或动态更新对象定义以反映新公式,或者,您需要限制人们的选择,为他们提供一个字段列表和一个运算符列表,您可以轻松地编写过程代码进行分支并执行请求的计算。我希望在应用程序中而不是在SQL Server中执行此操作。要在SQL Server中执行此操作,需要动态SQL或动态更新对象定义以反映新公式,或者,您需要限制人们的选择,为他们提供一个字段列表和一个运算符列表,您可以轻松地编写过程代码来进行分支并执行请求的计算