emeriks

MS SQL - Update Text Feld mit Steuerzeichen

Hi,
MS SQL Server 2008 und/oder 2012

nvarchar(n) - Spalte
Ich habe Text-Daten, welche auch Steuerzeichen enthalten können. Chr(0) und Konsorten. (auch "chinesische" Zeichen sind dabei)
Wie kann/muss ich diese in einer UPDATE- oder INSERT- Anweisung schreiben?

Bsp.
Pabcdefg㔵攱戰ぢabcdefg〰て〲〹juztrfgh㄰〰〰〰*jcztebfurifnmsdhstd㄰"jkcjfdhrfj㠴愳〰 xcjdhjfzurftui〰vjhjfrfhfvj挵挵㌷㐶挶搲㘶㌷〳㈳攲㌷㐶挶攲愶昶㠶ㄶ收收㤶㐷㔶㈷攲挶昶㌶ㄶ挶挵㔵㌷㔶㈷㌷㌳㐲挵㈴㔶收㔷㐷愷㔶㈷昵愷挶㘷昵㠶㤶㈷㐷㔶〰攲愶昶㠶ㄶ收收㤶㐷㔶㈷攲挶昶㌶ㄶ挶挵㐵㔶㈷搶㤶收ㄶ挶〵㈷昶㘶㤶挶㔶㌷㐲挵㠶㤶㈷㐷㔶〰'  
Wobei hier auch "unsichtbare" Zeichen bei sein können, welche im Editor (SQL Management Studio) gar nicht angezeigt werden.

E.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 331325

Url: https://administrator.de/forum/ms-sql-update-text-feld-mit-steuerzeichen-331325.html

Ausgedruckt am: 27.07.2025 um 07:07 Uhr

emeriks
emeriks 06.03.2017 um 14:37:45 Uhr
Update:
Natürlich könnte ich den Text zerlegen, etwa
Char(0) + Char(60) + Char(7) + Char( .... usw.
allerdings würde dann manche Anweisung ziehnlich lang werden. Faktor 1:10 ca.
atze187
atze187 08.03.2017 um 07:58:29 Uhr
Moin,

falls du das INSERT/UPDATE aus einer .NET-Anwendung heraus anstoßen möchtest (niemand muss mit solchen Strings hantieren hoffe ich face-smile) kannst du mit SqlParametern arbeiten, die kümmern sich drum: msdn.microsoft.com/de-de/library/system.data.sqlclient.sqlparame ...

Gruß,
André
emeriks
emeriks 08.03.2017 um 08:48:10 Uhr
Ja, ich weiß. Mache ich mit .Net sonst auch so. Jedoch was ist, wenn ich mal nur einen Datensatz so updaten will. Dann werde dafür nicht gleich ne .Net-Anwendung schreiben wollen.
MadMax
MadMax 13.03.2017 um 13:16:55 Uhr
Hallo emeriks,

das geht mit "openrowset (bulk ...)", z.B. so:
update	Tabelle
set	Spalte = (select convert (nvarchar (max), BulkColumn) from openrowset (bulk 'C:\Pfad\Datei.txt', single_blob) t)  
where	...

insert into Tabelle (Spalte) select convert (nvarchar (max), BulkColumn) from openrowset (bulk 'C:\Pfad\Datei.txt', single_blob) t  

Gruß, Mad Max