2013-07-08 13 views
5

Próbuję rzucić ciąg i wartość kolumny sklejane z następującym sql commant:Obsada ciąg + ntext błędu nvarchar

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

Po wykonaniu tego polecenia pojawia się następujący błąd:

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

Proszę o pomoc?

+0

Jaki jest typ danych z KlirAn ?? –

+0

Zakładam, że [KlirAn] to ntext? –

+0

Proszę podać schemat DB tabeli dla kolumny ** '[KlirAn]' ** – Luv

Odpowiedz

13

Spróbuj wykonać następujące czynności:

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

Czy to robi różnicę? – Luv

1

Problemem jest to, że 'Strign:' jest varchar i [KlirAn] jest NTEXT, więc ewentualna poprawka jest:

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

Jak @Damien_The_Unbeliever państw w komentarzu, że nie jest najbardziej błyskotliwy sposób robienia tego, ale działa.

Można również skorzystać z niejawna konwersja w SQL (VARCHAR DO nvarchar) i prosto:

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

BTW, należy wziąć pod uwagę:

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

Dlaczego miałbyś rzucić kolumnę 'KlirAn',' NTEXT', na ** 'VARCHAR' **, tylko na później, po zmasakrowaniu napisu, aby odrzucić wynik z powrotem do' NVARCHAR'? Dlaczego nie zachować tego 'N' przez cały czas? –

+0

To prawda, zredagowałem moją odpowiedź. –

3

Spróbuj

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