none
É possível uma base rodar no SQL2008-pt da mesma forma que roda no SQL2000-en ? RRS feed

  • Pergunta

  • Possuo num cliente um aplicativo que desenvolvi há 10 anos, na época desenvolvido para SQL2000 e Win2000Server, ambos em inglês.

    Acontece que o cliente comprou um novo servidor com Win2008ServerR2 e também SQL2008Standard-R2, ambos em português.

    Como não mexo mais com essa versão do meu aplicativo então estou tentando fazer com que o mesmo rode nesse novo ambiente (novo win, novo SQL). Acho que a vantagem que tenho é que naquela época eu NÃO usava SP´s, views, triggers, etc., nada disso no SQL2000.

    O problema é que neste meu aplicativo tudo que se refere a datas a formatação está MM/DD/AAAA (eng), e no SQL2008 está DD/MM/AAAA (pt).

    Gerei um backup no 2000 e restaurei no 2008.  Notei que no 2008 ele deixou o Nível de Compatibilidade dessa base restaurada como 'SQLServer 2000 (8.0)'.  Até aqui tudo bem !.

    Mas preciso de algum jeito configurar o 2008 para que entenda que essa minha base restaurada deve manter o padrão inglês para gravação das datas, e não mais o default de instalação (português). Tudo que tento nessa base restaurada usando meu aplicativo (de 10 anos) funciona perfeitamente, mas os campos que envolvem datas ficam em brancos.

    E quando vou fazer alguma consulta (ex: consulta vendas de 02/10/2012) o SQL interpreta como 10/02/2012.

    Pior: futuramente trocarei o aplicativo e a base de dados nesse cliente, então lá na frente precisarei voltá-lo para o português. (será iniciada uma base nova em português, portanto essa base que tem 10 anos de idade será descartada, sem problemas)

    Complicado, não ????

    Muito obrigado pela atenção dispensada.

    Dival.

    quarta-feira, 3 de outubro de 2012 13:19

Respostas

  • Dival,

    por isso que o ideal em relação a datas é utilizá-las sempre no formato YYYYMMDD. Dessa forma nunca terá problemas com idiomas.

    Mas agora o que pode fazer é alterar o idioma dos logins do SQL para inglês. Assim, mesmo que o SQL esteja em português, as datas serão tratadas no formato americano.

    Exemplo:

    -- Mudando o idioma do login 'sa' para inglês
    Exec sp_defaultlanguage 'sa', 'us_english'
    Reconfigure

    Tente isso.

    E veja mais em http://www.robersonferreira.com.br/alteracao_idioma/.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ quarta-feira, 3 de outubro de 2012 13:47
    • Marcado como Resposta Dival quarta-feira, 3 de outubro de 2012 18:14
    quarta-feira, 3 de outubro de 2012 13:47
  • Em relação à data, utilizando o formato YYYYMMDD você não fica dependente do idioma. Seja português, inglês, francês, você consegue escrever e ler datas sem problemas. Em relação ao formato que esta data será apresentada ao seu usuário, aí é com o aplicativo.

    E em relação ao idioma, sim, você pode modificá-lo quando quiser. Claro que não é bom ficar mexendo em configurações a todo momento. Mas se precisar, pode alterar o idioma novamente.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Dival quarta-feira, 3 de outubro de 2012 19:10
    quarta-feira, 3 de outubro de 2012 19:07

Todas as Respostas

  • Dival,

    por isso que o ideal em relação a datas é utilizá-las sempre no formato YYYYMMDD. Dessa forma nunca terá problemas com idiomas.

    Mas agora o que pode fazer é alterar o idioma dos logins do SQL para inglês. Assim, mesmo que o SQL esteja em português, as datas serão tratadas no formato americano.

    Exemplo:

    -- Mudando o idioma do login 'sa' para inglês
    Exec sp_defaultlanguage 'sa', 'us_english'
    Reconfigure

    Tente isso.

    E veja mais em http://www.robersonferreira.com.br/alteracao_idioma/.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Roberson Ferreira _ quarta-feira, 3 de outubro de 2012 13:47
    • Marcado como Resposta Dival quarta-feira, 3 de outubro de 2012 18:14
    quarta-feira, 3 de outubro de 2012 13:47
  • Sr Roberson,

    Muito obrigado pela sugestão.   Problema resolvido ! 

    Agora, se me permite, poderia me responder uma coisa:

    Como você comentou acima a base de dados é sempre gravada no formato YYYY-MM-DD.  Hoje configurei a base de dados restaurada no sql2008 para o inglês (isso por causa do meu aplicativo antigo).   Se amanhã eu quiser 'voltar' essa base de dados para o português basta eu alterar a linguagem para o portugues (sp_defaultlanguage) e fazer o login novamente como 'sa' e pronto ?

    (isto é: a gravação na base é sempre da mesma forma (yyyymmdd).  Essa configuração sugerida é para a interpretação dos dados cf o aplicativo utilizado ?)

    Novamente muito obrigado pela atenção dispensada

    Dival

    quarta-feira, 3 de outubro de 2012 18:23
  • Em relação à data, utilizando o formato YYYYMMDD você não fica dependente do idioma. Seja português, inglês, francês, você consegue escrever e ler datas sem problemas. Em relação ao formato que esta data será apresentada ao seu usuário, aí é com o aplicativo.

    E em relação ao idioma, sim, você pode modificá-lo quando quiser. Claro que não é bom ficar mexendo em configurações a todo momento. Mas se precisar, pode alterar o idioma novamente.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Dival quarta-feira, 3 de outubro de 2012 19:10
    quarta-feira, 3 de outubro de 2012 19:07