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 !!
Problemas (Sql Server 2005)
Iniciado por Caduzera, Mar 29 2011 09:23 AM
1 resposta a este tópico
#1
Adicionado 29 March 2011 - 09:23 AM
#2
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]
***********
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)












