Se você receber a mensagem de erro 245 que diz “Falha na conversão ao converter o valor varchar…” ao tentar realizar uma operação de concatenação no SQL Server, é provável que você esteja tentando concatenar uma string e um número.
Fazer isso resultará em um erro, devido ao SQL Server tentar adicionar a string e o número em vez de concatená-los.
Para corrigir isso, converta o número em uma string ou use uma função como
CONCAT()
ou CONCAT_WS()
para realizar a concatenação. O erro
Aqui está um exemplo de código que causa o erro:
SELECT 'Player ' + 456;
Resultado:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Player ' to data type int.
O SQL Server pensa que estamos tentando adicionar os dois operandos e, portanto, se depara com um problema ao tentar adicionar a string e o número.
Solução 1
Uma maneira de resolver esse problema é converter explicitamente o número em uma string:
SELECT 'Player ' + CAST(456 AS varchar(3));
Resultado:
Player 456
Isso faz com que o SQL Server entenda que estamos tentando concatenar os operandos em vez de adicioná-los.
Solução 2
Outra maneira de fazer isso é usar uma função como
CONCAT()
para realizar a concatenação:SELECT CONCAT('Player ', 456);
Resultado:
Player 456
CONCAT()
é uma função de string e, portanto, o SQL Server agora entende que queremos concatenar duas strings em vez de adicionar dois números. Alternativamente, podemos usar o
CONCAT_WS()
função, que nos permite especificar um separador para usar entre os argumentos concatenados.