2010-01-12 9 views
7

J'ai un tas de champs varchar (255) et varchar (max) dans une table dans MS SQL Server.Convertir " n" en nouvelle ligne de commande dans SQL Server

Ce sont généralement des messages formatés (e-mail et autres). La plupart des champs ont les caractères "\ n", mais ont besoin d'un caractère de retour à la ligne. Je n'ai pas besoin de m'inquiéter pour de nouvelles données, mais je ne sais pas comment réparer ce qui est actuellement dans la base de données.

Je suis surtout un programmeur, pas un SQL/DB Guy, donc tout pointeur sur la façon de résoudre ce problème, ou des ressources pour me lancer serait apprécié.

Répondre

12

cela devrait faire l'affaire

UPDATE 
    <tablename> 
SET 
    <fieldname> = replace(<fieldname>,'\n',char(13)+char(10)), 
    <otherfieldname> = replace(<otherfieldname>,'\n',char(13)+char(10)) 
+0

Gaby, parfait. Merci! – Kylar

2

Ce:

print replace('Line 1\nLine 2','\n',char(13)) 

produira:

Line 1 
Line 2 
1

Je crois que vous cherchez char (13) ...

select 'hi' + char(13) + 'there' 

Vous pouvez remplacer \ n dans les instructions select ...

select replace('hi\nthere', '\n', char(13)) 

Ou vous pouvez faire une mise à jour ...

update table set str = replace(str, '\n', char(13)) 
Questions connexes