emeriks
Goto Top

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.

Content-ID: 331325

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

Ausgedruckt am: 12.04.2025 um 00:04 Uhr

emeriks
emeriks 06.03.2017 um 14:37:45 Uhr
Goto Top
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
Goto Top
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: https://msdn.microsoft.com/de-de/library/system.data.sqlclient.sqlparame ...

Gruß,
André
emeriks
emeriks 08.03.2017 um 08:48:10 Uhr
Goto Top
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
Goto Top
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