Если у каждого пользователя есть учетная запись, вы можете использовать функцию SYSTEM_USER
для определения текущего пользователя. Однако, если все ваши подключения проходят через учетную запись-посредник, как это обычно происходит в большинстве настроек веб-сайта, вы должны полагаться на правильный идентификатор пользователя, передаваемый в инструкцию Update:
CREATE TRIGGER [update_history] ON MyTable
FOR UPDATE
AS
INSERT MyTable_History (id, BudgetNumber, PositionNumber, ModifiedDate, action, userId)
SELECT id, BudgetNumber, PositionNumber, GETDATE(), 'BEFORE UPDATE', inserted.userId
FROM MyTable
Join inserted
On inserted.id = MyTable.id
INSERT MyTable_History (id, BudgetNumber, PositionNumber, ModifiedDate, action, userId)
SELECT id, BudgetNumber, PositionNumber, GETDATE(), 'AFTER UPDATE', userId
FROM inserted