Подставьте значение в формулу, используя триггер - PullRequest
0 голосов
/ 27 мая 2019

Я работаю над проектом, в котором есть пара математических вычислений, которые должны быть выполнены на основе данных

Я написал триггер в SQL SERVER для вычисления этого значения. Я использовал REPLACE (), чтобы заменить переменные значениями и получил следующее

Например:

Value = 100 +a - (b*10)

a=1
b=2

Я получаю значение = 100 + 1 - (2 * 10)

Ожидаемый результат - значение = 81

.

Я использую следующий запрос:

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

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 27 мая 2019

Вместо 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...