2009-05-06 4 views
3

Ich versuche, den Wert eines Tags mit chinesischen Schriftzeichen zu aktualisieren. Es fügt jedoch keine chinesischen Schriftzeichen hinzu. Stattdessen fügt es "???" . z.B. Aktualisierungstabelle col.modify gesetzt ('ersetzen Wert von (/ tag/text()) [1] mit "我"'), wo .. Jede Hilfe vielSQL Server 2005 XML Update Abfrage chinesische Zeichen

dank Ben geschätzt

+0

@unknown: ich noch eine Frage von Ihnen (SQL Server 2005 awe) zu serverfault.com bewegt, wo es wird hoffentlich Antworten von Menschen, die ein wenig mehr darüber wissen. –

Antwort

4

Für internationale solche Zeichen, die du normalerweise benutzen willst N'this sind meine Daten 'um zu signalisieren, dass es Unicode/Nchar ist. Andernfalls wird es als char behandelt, und ich nehme an, dass die db-Sortierung die Zeichen, die Sie übermitteln, nicht unterstützen kann. Versuchen Sie, nur

select 'my chars' 

zu tun und sehen, wenn Sie noch Fragezeichen bekommen, würde ich so übernehmen.

EDIT - hier ein Beispiel dafür ist, dass mein Vorschlag bestätigt funktioniert:

declare @x xml 
set @x = N'<tag>abc</tag>' 
set @x.modify (N'replace value of (/tag/text())[1] with "我"') 
select @x 

ich das Symbol sehen, wenn ich die xml wählen, und ich festgestellt, dass vor und nach dem Charakter 0x1162 ist (erweist sich die Daten intakt).

+0

Ich versuche, die XML-Daten zu aktualisieren. Die Updates funktionieren für nvarchar Datentypen aber wenn ich versuche einen xml Datentyp zu aktualisieren, funktioniert das Update nicht – user55474

+0

@poster - Siehe das Beispiel, das ich bearbeitet habe. Das funktioniert, also musst du etwas anderes falsch machen, wenn dieser Ansatz dir immer noch gibt Ärger. Geben Sie uns weitere Details, wenn Sie weiterhin Probleme haben. – ahains

+0

Ich sende die Daten in einen gespeicherten Prozess. Der Datentyp ist nvarchar. es spart noch als ??? – user55474

2

Verwenden Sie Unicode-Strings? Diejenigen, beginnen mit einem Kapital N, wie:

update yourtable 
set yourvalue = N'your chinese characters' 
where id = yourid 
+0

ich versuche zu aktualisieren die XML-Daten. Die Updates funktionieren für nvarchar-Datentypen, aber wenn ich versuche, einen xml-Datentyp zu aktualisieren, funktioniert das Update nicht – user55474

+0

Könnten Sie die Tabellendefinitionen und Beispiel-XML posten? Ich kann deine Gedanken nicht lesen;) – Andomar

+0

Update-Tabelle set col.modify ('Ersetze Wert von (/ tag/text()) [1] mit sql: variable ("@ data")') der Datentyp von @data ist nvarchar – user55474