使用触发器替换公式中的值

时间:2019-05-27 12:39:50

标签: sql-server

我正在做一个项目,该项目必须根据馈送的数据进行一些数学计算

我已经在SQL SERVER中编写了一个触发器来计算该值。我使用REPLACE()将变量替换为值,并得到了以下内容

例如:

Value = 100 +a - (b*10)

a=1
b=2

我得到值= 100 +1-(2 * 10)

预期输出为Value = 81

我使用以下查询:

SELECT REPLACE(REPLACE(Value,'a',1),'b',2) FROM Formula

有没有更好的方法来完成此任务?

1 个答案:

答案 0 :(得分:0)

您可以将公式存储为参数化查询表达式,而不用REPLACE并将值作为参数传递:

DECLARE @value int;
DECLARE @formula nvarchar(MAX) = N'SET @Value = 100 + @a - (@b * 10);';
EXEC sp_executesql @formula, N'@value int OUTPUT, @a int, @b int', @a = 1, @b = 2, @value = @value OUTPUT;
PRINT @value;