Which one should I use to record update made by users?
SYSTEM_USER
, orORIGINAL_LOGIN()
, orSUSER_SNAME()
SYSTEM_USER
returns the current executing context, so this can return an impersonated context
ORIGINAL_LOGIN()
returns the identity of the user that initially connected to the instance, so regardless whether the context is impersonated or not it will yield the original user that logged in, good for auditing.
SUSER_SNAME()
this is used if you want to get the username by SID so SUSER_SNAME
can be invoked with a parameter like such SUSER_SNAME([server_user_sid])
but the SID is optional if you don’t pass that parameter the current user is returned.