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-Key: 331325

Url: https://administrator.de/contentid/331325

Printed on: April 25, 2024 at 15:04 o'clock

Member: emeriks
emeriks Mar 06, 2017 at 13:37:45 (UTC)
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.
Member: atze187
atze187 Mar 08, 2017 at 06:58:29 (UTC)
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é
Member: emeriks
emeriks Mar 08, 2017 at 07:48:10 (UTC)
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.
Member: MadMax
MadMax Mar 13, 2017 at 12:16:55 (UTC)
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