terça-feira, 15 de julho de 2008

 

Concatenando campo TEXT com VARCHAR em Select do SqlServer

Hoje passei novamente por um problema na hora de efetuar uma pesquina no banco de dados MSSqlServer.
Estava precisando criar um 'Select' contendo um campo 'Observacao' (do tipo Text) adicionado de um outro campo 'Descricao' [de uma outra tabela, do tipo Varchar(100)], porém como esse tipo de campo, 'Text', é muito problemático [em vários aspectos, tanto que a recomendação é a utilização do VARCHAR(MAX)], não é possível concatená-lo a uma outra string utilizando o caracter de adição (+).
Portanto, como resolver esse problema? A maneira mais fácil é a de converter o 'Text' para 'Varchar(8000)' antes de efetuar a concatenação, dessa forma:
SELECT CONVERT(VARCHAR(8000), campoText) + campoVarchar AS novoNomeCampo
FROM <...>

Mas lembre-se, quando estiver criando uma nova tabela prefira utilizar VARCHAR ao TEXT. Para conferir mais sobre o assunto verifique o site da Microsoft (Leia o artigo: Using text and image Data), repare que no início desse artigo eles avisam que o tipo TEXT será descontinuado nas próximas versões do SqlServer:
Important: This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use varchar(max), nvarchar(max) and varbinary(max) data types instead. For more information, see Using Large-Value Data Types.

Marcadores: , , ,


Comentários:

Postar um comentário

Assinar Postar comentários [Atom]





<< Página inicial

Add to Technorati Favorites Adicionar aos Favoritos BlogBlogs diHITT

Assinar Postagens [Atom]