Vermutlich schafft der Treiber es nicht, ein 'N' vor das Stringliteral bei der Parametrierung zu setzen. Ich würde mir mal im Profiler anschauen, welcher
SQL-Befehl genau zum Server geschickt wird. Ich war neulich so blöd, und hab das direkt im SSMS geschafft, also etwas kyrillisches in ????? zu verwandeln, nämlich so:
Code:
declare @foo nvarchar(20)
set @foo = '<etwas kyrillisches>'
select @foo
Ergebnis: '??????'
Code:
declare @foo nvarchar(20)
set @foo = N'<etwas kyrillisches>'
select @foo
Ergebnis: '<etwas kyrillisches>'
Bei falsches Codepages würde ich annehmen, das einfach ein anderer Buchstabensalat rauskommt. Bei reinen '????' auf Datenverlust im
SQL-Skript.