Se viene visualizzato il messaggio di errore 245 che dice "Conversione non riuscita durante la conversione del valore varchar..." quando si tenta di eseguire un'operazione di concatenazione in SQL Server, è probabile che si stia tentando di concatenare una stringa e un numero.
In questo modo si verificherà un errore, a causa del tentativo di SQL Server di aggiungere la stringa e il numero invece di concatenarli.
Per risolvere questo problema, converti il numero in una stringa o usa una funzione come CONCAT()
o CONCAT_WS()
per eseguire la concatenazione.
L'errore
Ecco un esempio di codice che causa l'errore:
SELECT 'Player ' + 456;
Risultato:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Player ' to data type int.
SQL Server pensa che stiamo cercando di aggiungere i due operandi e quindi incontra un problema quando si tenta di aggiungere la stringa e il numero.
Soluzione 1
Un modo per risolvere questo problema è convertire esplicitamente il numero in una stringa:
SELECT 'Player ' + CAST(456 AS varchar(3));
Risultato:
Player 456
Ciò fa sì che SQL Server capisca che stiamo cercando di concatenare gli operandi invece di aggiungerli.
Soluzione 2
Un altro modo per farlo è usare una funzione come CONCAT()
per eseguire la concatenazione:
SELECT CONCAT('Player ', 456);
Risultato:
Player 456
CONCAT()
è una funzione di stringa, quindi SQL Server ora comprende che vogliamo concatenare due stringhe invece di aggiungere due numeri.
In alternativa, potremmo usare il CONCAT_WS()
funzione, che ci consente di specificare un separatore da utilizzare tra gli argomenti concatenati.