none
Para que serve o N' em: CREATE LOGIN [nome_login] WITH PASSWORD=N'sEnh@' RRS feed

  • Pergunta

  • Pessoal, boa tarde!

    Estou pesquisando mas não consegui encontrar:

    Para que serve o N' em:

    CREATE LOGIN [nome_login] WITH PASSWORD=N'sEnh@'

    Esse N antes da senha....

    - Case sensitive?
    - Variável para passar parâmetro?
    - Versões antigas?

    Obrigado desde já!

    • Movido Gustavo Maia Aguiar quarta-feira, 11 de abril de 2012 18:21 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 11 de abril de 2012 17:49

Respostas

  • Jardel,

         O prefixo N indica que você irá utilizar uma sequencia de caracteres do tipo UNICODE. Se você nao utilizar o N, indicará para o SQL Server que a sequencia de caracteres é do tipo ASCII.

         O uso do UNICODE normalmente está relacionado ao uso de variáveis/campos do tipo NCHAR ou NVARCHAR... Diversos parametros passados para comandos do Transact-SQL também exigem que a sequencia de caracteres também seja do tipo UNICODE, Talvez por este motivo a sua sintaxe de criação do login está colocando o N na frente da senha.

          Respondendo as suas perguntas:

          1 - Não indica Case Sensitive.

          2 - Não é indicação de variavel para parametro, mas se a sequencia de caracteres será UNICODE ou ASCII

          3 - É uma versão atual e devemos tomar cuidado com o uso de conversoes implicitas, que causam lentidao nas nossas queries. Por exemplo, se vocë tem um campo do tipo NVARCHAR e passa uma variavel do tipo VARCHAR, o SQL Server irá fazer uma conversão implicita, e isso pode gastar tempo de processamento. Tente evitar isso utilizando sempre campos, variáveis e parâmetros do mesmo tipo.


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008


    quarta-feira, 11 de abril de 2012 17:54
    Moderador

Todas as Respostas

  • Jardel,

         O prefixo N indica que você irá utilizar uma sequencia de caracteres do tipo UNICODE. Se você nao utilizar o N, indicará para o SQL Server que a sequencia de caracteres é do tipo ASCII.

         O uso do UNICODE normalmente está relacionado ao uso de variáveis/campos do tipo NCHAR ou NVARCHAR... Diversos parametros passados para comandos do Transact-SQL também exigem que a sequencia de caracteres também seja do tipo UNICODE, Talvez por este motivo a sua sintaxe de criação do login está colocando o N na frente da senha.

          Respondendo as suas perguntas:

          1 - Não indica Case Sensitive.

          2 - Não é indicação de variavel para parametro, mas se a sequencia de caracteres será UNICODE ou ASCII

          3 - É uma versão atual e devemos tomar cuidado com o uso de conversoes implicitas, que causam lentidao nas nossas queries. Por exemplo, se vocë tem um campo do tipo NVARCHAR e passa uma variavel do tipo VARCHAR, o SQL Server irá fazer uma conversão implicita, e isso pode gastar tempo de processamento. Tente evitar isso utilizando sempre campos, variáveis e parâmetros do mesmo tipo.


    Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008


    quarta-feira, 11 de abril de 2012 17:54
    Moderador
  • Roberto, muito obrigado pelo esclarecimento.

    Abraço!

    quinta-feira, 19 de abril de 2012 21:30