Невозможно сделать это в триггере.В общем, вы можете использовать dynamic sql для использования имен столбцов переменных, см., Например, Динамическое преобразование строки в имя столбца .Однако это недопустимо в хранимых функциях или триггерах .
Вы можете использовать if then else
, чтобы иметь различные операторы insert
для каждой ситуации, что-то вроде if tgl = 7 then update ... set d7 = d7 + ... elseif tgl = 122 then update ... set d122 = d122 + ...
.
Однако в большинстве ситуаций вы можете и должны избегать этого при разработке таблицы.
Я не уверен, что именно вы пытаетесь сделать, но вы можете просто добавить столбец tglcode
ксохраните это значение в таблице, а затем добавьте where tglcode = tgl
к вашему update
выражению.Похоже, что вы (или ваш предшественник) сделали это или что-то подобное с переменными b
и t
, хранящимися в столбцах m
и t
.
Если это жизнеспособное решение (или правильный дизайн таблицы) для вашей проблемы, трудно сказать, хотя и без дополнительной информации.Но вы определенно не можете использовать переменную kol
так, как вы это делали в триггере.