Jump to content


- - - - -

Problemas (Sql Server 2005)










1 resposta a este tópico

#1 Caduzera

    Membro

  • Membros
  • PipPip
  • 43 posts
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 29 March 2011 - 09:23 AM

Pessoal, tudo certo?

Seguinte tenho um problema com o SQL Server 2005 e não faço a mínima de como resolver.

Tenho a versão do SQL Server 2005 Express instalada na minha máquina, e executo nela um comando assim:

UPDATE TABELA SET CAMPO = ' ' WHERE CODIGO = 1

Eu quero inserir em um campo três espaços em branco. Esse campo é um VARCHAR(3). Isso funciona OK na minha versão Express.

Quando executo o mesmo procedimento em um dos nossos servidores com a versão Enterprise do SQL Server, ele não se comporta da mesma forma.

Ao invés de inserir os três espaços em branco, ele inseri apenas 1.

O que pode ser??? Alguma configuração???

Valeu pessoa !!

#2 Caduzera

    Membro

  • Membros
  • PipPip
  • 43 posts
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 30 March 2011 - 08:38 AM

Pessoal, segue a resposta ao meu problema !!

***********

Exec sp_help <NomeDaTabela>

Provavelmente, na versão Express, você terá a opção TrimTrailingBlanks, correpondente à coluna da sua tabela que está sendo atualizada, como "no" e na versão Enterprise estará como "yes".

Quando está propriedade está definida como 'yes', ao gravar os dados na tabela o SQL Server retira os espaços em branco após a string. Por exemplo: 'valor 1 ', será gravado como 'valor 1'. Porém, quando a propriedade estiver como 'no' os dados serão gravados com os espaços no fim.

Se este realmente for o seu problema, você pode alterar esta propriedade efetuando um alter na coluna que você está tentando atualizar, porém, deve especificar antes

SET ANSI_PADDING ON

conforme o exemplo do Marcelo.

Quando você criar ou alterar uma coluna de uma tabela com a opção ANSI_PADDING ON, essas colunas armazenaram os espaços em branco após o texto. Agora, se você utilizar a opção ANSI_PADDING OFF, o SQL Server descartará os espaços após o texto.

Ex para alterar o propriedade para que passe a armazenar os espaços em branco após o texto:

SET ANSI_PADDING ON
Go
ALTER TABLE <Tabela> ALTER COLUMN <Coluna> <Tipo> [Constraints]





1 usuário(s) esta(ão) lendo este tópico

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)