2013-07-08 16 views
5

Sto cercando di lanciare una stringa e un valore di colonna concatenato con la seguente comandato sql:Fusioni + ntext per errore nvarchar

CAST('Strign:'+[KlirAn] as NVARCHAR(max)) 

Dopo l'esecuzione di questo comando ottengo il seguente errore:

Msg 402, Level 16, State 1, Line 1 
The data types varchar and ntext are incompatible in the add operator. 

Qualche aiuto per favore?

+0

Qual è il tipo di dati KlirAn ?? –

+0

Immagino che [KlirAn] sia ntext? –

+0

Si prega di fornire lo schema del DB per la tabella per la colonna ** '[KlirAn]' ** – Luv

risposta

13

provare quanto segue:

'String:'+ CAST([KlirAn] as NVARCHAR(max)) 
+0

Fa differenza? – Luv

1

Il problema è che 'Strign:' è varchar e [KlirAn] è NTEXT, quindi una possibile soluzione è:

CAST('Strign:'+CAST([KlirAn] AS VARCHAR(max)) as NVARCHAR(max)) 

Come @Damien_The_Unbeliever afferma in un commento, non è il modo più brillante per farlo, ma funziona.

Si potrebbe anche sfruttare la conversione implicita in SQL (VARCHAR TO NVARCHAR) e semplicemente:

'Strign:' + CAST([KlirAn] AS NVARCHAR(max)) 

BTW, si dovrebbe prendere in considerazione:

ntext, text, and image data types will be removed in a future version of MicrosoftSQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use
them. Use nvarchar(max), varchar(max), and varbinary(max) instead.

+0

Perché dovresti lanciare 'KlirAn', una colonna' NTEXT', in ** 'VARCHAR' **, solo dopo, dopo aver distrutto la stringa, per restituire il risultato a' NVARCHAR'? Perché non tenerlo 'N' dappertutto? –

+0

Vero, ho modificato la mia risposta. –

3

Prova questa

SELECT 
    'String:'+CONVERT(NVARCHAR(max),[KlirAn]) 
FROM table 
Problemi correlati