Friday, July 15, 2016

Some problem of SUSER_NAME in SQL Server 2016

Which of these is the current user?

The syntax is:
SUSER_NAME ( [ server_user_id ] )
where server_usr_id is the login identification number of the user. It is optional but when used it is of data type int.

server_user_id can be the login for:
  • Any SQL Server login
  • Microsoft Windows user
  • Microsoft Windows User Group that has permission to connect to SQL Server.
If the server_user_id is not supplied, then the current user is returned.
Here are SUSER_NAMEs for a number of server_user-ids:



It works funny in SQL Server 2016 Developers edition on Windows 10 professional.
SELECT SUSER_NAME() returns
MicrosoftAccount\hodentek@live.com
which is obviously wrong since the current user is:
Hodentek8\Jayaram



How does one reconcile with the above?

Also how does one reconcile with the following statement and the results returned.