SUSER_NAME() and CURRENT_USER












0















What is the difference between SUSER_NAME() and CURRENT_USER?










share|improve this question




















  • 3





    Can't you run both and see the difference between them?

    – Sami
    Nov 20 '18 at 18:09











  • @HimanshuAhuja: Why multiple rows, it will never change within a Select.

    – dnoeth
    Nov 20 '18 at 18:17
















0















What is the difference between SUSER_NAME() and CURRENT_USER?










share|improve this question




















  • 3





    Can't you run both and see the difference between them?

    – Sami
    Nov 20 '18 at 18:09











  • @HimanshuAhuja: Why multiple rows, it will never change within a Select.

    – dnoeth
    Nov 20 '18 at 18:17














0












0








0








What is the difference between SUSER_NAME() and CURRENT_USER?










share|improve this question
















What is the difference between SUSER_NAME() and CURRENT_USER?







sql sql-server tsql






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 '18 at 18:30









Rahul Neekhra

6001627




6001627










asked Nov 20 '18 at 18:04









PassiontolearnPassiontolearn

386




386








  • 3





    Can't you run both and see the difference between them?

    – Sami
    Nov 20 '18 at 18:09











  • @HimanshuAhuja: Why multiple rows, it will never change within a Select.

    – dnoeth
    Nov 20 '18 at 18:17














  • 3





    Can't you run both and see the difference between them?

    – Sami
    Nov 20 '18 at 18:09











  • @HimanshuAhuja: Why multiple rows, it will never change within a Select.

    – dnoeth
    Nov 20 '18 at 18:17








3




3





Can't you run both and see the difference between them?

– Sami
Nov 20 '18 at 18:09





Can't you run both and see the difference between them?

– Sami
Nov 20 '18 at 18:09













@HimanshuAhuja: Why multiple rows, it will never change within a Select.

– dnoeth
Nov 20 '18 at 18:17





@HimanshuAhuja: Why multiple rows, it will never change within a Select.

– dnoeth
Nov 20 '18 at 18:17












3 Answers
3






active

oldest

votes


















1
















  • CURRENT_USER


    This function returns the name of the current user. This function is equivalent to USER_NAME().





It will return the UserName in the database.




  • SUSER_NAME([server_user_id])



Returns the login identification name of the user.






Differences table:



+--------------------------------------+---------------------------------------------------+
| CURRENT_USER | SUSER_NAME([server_user_id]) |
+--------------------------------------+---------------------------------------------------+
| Returns the name of the current user | Returns the login identification name of the user |
| No parameters | The paramater is optional |
| Return sysname | Return nvarchar(128) |
| No need to parentheses | Must call it with parentheses |
+--------------------------------------+---------------------------------------------------+




For example run this query and see the results:



SELECT CURRENT_USER, --or USER_NAME() parameter is optional
SUSER_NAME(4) --parameter is optional





share|improve this answer


























  • Well, the OP asked about SUSER_NAME

    – dnoeth
    Nov 20 '18 at 18:17



















1














CURRENT_USER returns the name of the current security context and expects no parameters. It is functionally equivalent to USER_NAME()



Whereas SUSER_NAME() will return the login identification name of the user - you can pass a server_user_id to return detail of the user or pass nothing to return detail about the current user.



Detail is here and here



You could run the following to see the differences yourself:



SELECT SUSER_NAME();
SELECT CURRENT_USER;





share|improve this answer































    0














    The Current_User will return the name of the user in the database whereas SUSER_NAME() will return the user name on the server. This is the major difference between the two. And as you can see Current_user has no arguments whereas SUSER_NAME() has.






    share|improve this answer


























    • SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

      – Sami
      Nov 20 '18 at 18:25











    • I edited that now.

      – Himanshu Ahuja
      Nov 20 '18 at 18:26











    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53398942%2fsuser-name-and-current-user%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1
















    • CURRENT_USER


      This function returns the name of the current user. This function is equivalent to USER_NAME().





    It will return the UserName in the database.




    • SUSER_NAME([server_user_id])



    Returns the login identification name of the user.






    Differences table:



    +--------------------------------------+---------------------------------------------------+
    | CURRENT_USER | SUSER_NAME([server_user_id]) |
    +--------------------------------------+---------------------------------------------------+
    | Returns the name of the current user | Returns the login identification name of the user |
    | No parameters | The paramater is optional |
    | Return sysname | Return nvarchar(128) |
    | No need to parentheses | Must call it with parentheses |
    +--------------------------------------+---------------------------------------------------+




    For example run this query and see the results:



    SELECT CURRENT_USER, --or USER_NAME() parameter is optional
    SUSER_NAME(4) --parameter is optional





    share|improve this answer


























    • Well, the OP asked about SUSER_NAME

      – dnoeth
      Nov 20 '18 at 18:17
















    1
















    • CURRENT_USER


      This function returns the name of the current user. This function is equivalent to USER_NAME().





    It will return the UserName in the database.




    • SUSER_NAME([server_user_id])



    Returns the login identification name of the user.






    Differences table:



    +--------------------------------------+---------------------------------------------------+
    | CURRENT_USER | SUSER_NAME([server_user_id]) |
    +--------------------------------------+---------------------------------------------------+
    | Returns the name of the current user | Returns the login identification name of the user |
    | No parameters | The paramater is optional |
    | Return sysname | Return nvarchar(128) |
    | No need to parentheses | Must call it with parentheses |
    +--------------------------------------+---------------------------------------------------+




    For example run this query and see the results:



    SELECT CURRENT_USER, --or USER_NAME() parameter is optional
    SUSER_NAME(4) --parameter is optional





    share|improve this answer


























    • Well, the OP asked about SUSER_NAME

      – dnoeth
      Nov 20 '18 at 18:17














    1












    1








    1









    • CURRENT_USER


      This function returns the name of the current user. This function is equivalent to USER_NAME().





    It will return the UserName in the database.




    • SUSER_NAME([server_user_id])



    Returns the login identification name of the user.






    Differences table:



    +--------------------------------------+---------------------------------------------------+
    | CURRENT_USER | SUSER_NAME([server_user_id]) |
    +--------------------------------------+---------------------------------------------------+
    | Returns the name of the current user | Returns the login identification name of the user |
    | No parameters | The paramater is optional |
    | Return sysname | Return nvarchar(128) |
    | No need to parentheses | Must call it with parentheses |
    +--------------------------------------+---------------------------------------------------+




    For example run this query and see the results:



    SELECT CURRENT_USER, --or USER_NAME() parameter is optional
    SUSER_NAME(4) --parameter is optional





    share|improve this answer

















    • CURRENT_USER


      This function returns the name of the current user. This function is equivalent to USER_NAME().





    It will return the UserName in the database.




    • SUSER_NAME([server_user_id])



    Returns the login identification name of the user.






    Differences table:



    +--------------------------------------+---------------------------------------------------+
    | CURRENT_USER | SUSER_NAME([server_user_id]) |
    +--------------------------------------+---------------------------------------------------+
    | Returns the name of the current user | Returns the login identification name of the user |
    | No parameters | The paramater is optional |
    | Return sysname | Return nvarchar(128) |
    | No need to parentheses | Must call it with parentheses |
    +--------------------------------------+---------------------------------------------------+




    For example run this query and see the results:



    SELECT CURRENT_USER, --or USER_NAME() parameter is optional
    SUSER_NAME(4) --parameter is optional






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 20 '18 at 18:58

























    answered Nov 20 '18 at 18:17









    SamiSami

    8,73331241




    8,73331241













    • Well, the OP asked about SUSER_NAME

      – dnoeth
      Nov 20 '18 at 18:17



















    • Well, the OP asked about SUSER_NAME

      – dnoeth
      Nov 20 '18 at 18:17

















    Well, the OP asked about SUSER_NAME

    – dnoeth
    Nov 20 '18 at 18:17





    Well, the OP asked about SUSER_NAME

    – dnoeth
    Nov 20 '18 at 18:17













    1














    CURRENT_USER returns the name of the current security context and expects no parameters. It is functionally equivalent to USER_NAME()



    Whereas SUSER_NAME() will return the login identification name of the user - you can pass a server_user_id to return detail of the user or pass nothing to return detail about the current user.



    Detail is here and here



    You could run the following to see the differences yourself:



    SELECT SUSER_NAME();
    SELECT CURRENT_USER;





    share|improve this answer




























      1














      CURRENT_USER returns the name of the current security context and expects no parameters. It is functionally equivalent to USER_NAME()



      Whereas SUSER_NAME() will return the login identification name of the user - you can pass a server_user_id to return detail of the user or pass nothing to return detail about the current user.



      Detail is here and here



      You could run the following to see the differences yourself:



      SELECT SUSER_NAME();
      SELECT CURRENT_USER;





      share|improve this answer


























        1












        1








        1







        CURRENT_USER returns the name of the current security context and expects no parameters. It is functionally equivalent to USER_NAME()



        Whereas SUSER_NAME() will return the login identification name of the user - you can pass a server_user_id to return detail of the user or pass nothing to return detail about the current user.



        Detail is here and here



        You could run the following to see the differences yourself:



        SELECT SUSER_NAME();
        SELECT CURRENT_USER;





        share|improve this answer













        CURRENT_USER returns the name of the current security context and expects no parameters. It is functionally equivalent to USER_NAME()



        Whereas SUSER_NAME() will return the login identification name of the user - you can pass a server_user_id to return detail of the user or pass nothing to return detail about the current user.



        Detail is here and here



        You could run the following to see the differences yourself:



        SELECT SUSER_NAME();
        SELECT CURRENT_USER;






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 20 '18 at 18:24









        MattMatt

        6161025




        6161025























            0














            The Current_User will return the name of the user in the database whereas SUSER_NAME() will return the user name on the server. This is the major difference between the two. And as you can see Current_user has no arguments whereas SUSER_NAME() has.






            share|improve this answer


























            • SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

              – Sami
              Nov 20 '18 at 18:25











            • I edited that now.

              – Himanshu Ahuja
              Nov 20 '18 at 18:26
















            0














            The Current_User will return the name of the user in the database whereas SUSER_NAME() will return the user name on the server. This is the major difference between the two. And as you can see Current_user has no arguments whereas SUSER_NAME() has.






            share|improve this answer


























            • SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

              – Sami
              Nov 20 '18 at 18:25











            • I edited that now.

              – Himanshu Ahuja
              Nov 20 '18 at 18:26














            0












            0








            0







            The Current_User will return the name of the user in the database whereas SUSER_NAME() will return the user name on the server. This is the major difference between the two. And as you can see Current_user has no arguments whereas SUSER_NAME() has.






            share|improve this answer















            The Current_User will return the name of the user in the database whereas SUSER_NAME() will return the user name on the server. This is the major difference between the two. And as you can see Current_user has no arguments whereas SUSER_NAME() has.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 20 '18 at 18:25

























            answered Nov 20 '18 at 18:23









            Himanshu AhujaHimanshu Ahuja

            6661216




            6661216













            • SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

              – Sami
              Nov 20 '18 at 18:25











            • I edited that now.

              – Himanshu Ahuja
              Nov 20 '18 at 18:26



















            • SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

              – Sami
              Nov 20 '18 at 18:25











            • I edited that now.

              – Himanshu Ahuja
              Nov 20 '18 at 18:26

















            SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

            – Sami
            Nov 20 '18 at 18:25





            SUSER_NAME() won't return just the LogIn Name, try SELECT SUSER_NAME(4), it returns the login identification name of the user.

            – Sami
            Nov 20 '18 at 18:25













            I edited that now.

            – Himanshu Ahuja
            Nov 20 '18 at 18:26





            I edited that now.

            – Himanshu Ahuja
            Nov 20 '18 at 18:26


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53398942%2fsuser-name-and-current-user%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

            Npm cannot find a required file even through it is in the searched directory