Question

Dans la "& dat; datagrid "" vue d’une table de données ouverte, comment puis-je saisir un nouveau caractère de ligne dans un champ nvarchar directement dans SSMS?

Y a-t-il un code alternatif?

Était-ce utile?

La solution

Vous ne pouvez pas.

Utiliser une " nouvelle requête " fenêtre à la place et effectuez une mise à jour manuelle:

UPDATE mytable
SET textvalue = 
'This text
can include
line breaks'
WHERE rowid = 1234

Autres conseils

Vous pouvez coller les lignes à partir d'un éditeur de texte utilisant des fins de ligne de style UNIX (CR + LF). J'utilise Notepad ++. Tout d’abord, allez dans Paramètres / Préférences / Nouveau document et changez le format de Windows à Unix. Ouvrez ensuite un nouveau document, tapez vos lignes et copiez-les dans SSMS.

soit char (13) ou char (10) fonctionnerait. mais il est recommandé d'utiliser char (13) + char (10)

  • char (10) = \ n - nouvelle ligne
  • char (13) = \ r - va au début de la ligne

Vous pouvez préparer le texte dans le bloc-notes et le coller dans SSMS. SSMS n’affichera pas les nouvelles lignes, mais elles sont là, comme vous pouvez le vérifier avec un select:

select *
from YourTable
where Col1 like '%' + char(10) + '%'

J'ai eu des problèmes au début (je ne sais pas pourquoi) mais j'ai finalement réussi à utiliser ce qui suit avec SSMS pour SQL Server 2008.

Insérez ALT-13 puis ALT-10 à votre guise dans une colonne de type varchar (le symbole de la musique et un carré apparaissent et sont sauvegardés lorsque vous quittez la ligne). Initialement, vous recevrez un avertissement (!) À gauche de la ligne après l'avoir quitté. Il suffit de ré-exécuter votre instruction SELECT. Les symboles et l'avertissement disparaîtront mais le CR / LF sera enregistré. Vous devez inclure ALT-13 si vous souhaitez que le texte s'affiche correctement en HTML. Pour déterminer rapidement si cela a fonctionné, copiez le texte enregistré de SSMS dans le Bloc-notes.

Sinon, si vous ne parvenez pas à résoudre ce problème, vous pouvez faire la même chose en commençant par une colonne nvarchar. Toutefois, les symboles seront enregistrés sous forme de texte. Vous devez ainsi convertir la colonne en varchar lorsque vous avez terminé de convertir les symboles en CR / LF.

Si vous souhaitez copier & amp; coller du texte provenant d'une autre source (une autre ligne ou un autre tableau, HTML, Bloc-notes, etc.) sans que votre texte soit tronqué au premier CR, j'ai constaté que la solution (le Bloc-notes du programmeur) mentionnée au lien suivant fonctionnait avec SSMS pour SQL Server 2008 en utilisant varchar & amp; Types de colonne nvarchar.

http://dbaspot.com/sqlserver-programming/409451-how-i-enter-linefeed-when-modifying-text-field-2.html#post1523145

L'auteur du message (dbaspot) mentionne quelque chose à propos de la création de requêtes SQL - il ne sait pas exactement ce qu'il veut dire. Il suffit de suivre les instructions sur le bloc-notes du programmeur et vous pouvez copier & amp; collez du texte vers et depuis SSMS et conservez les LF dans les deux sens (à l'aide du bloc-notes du programmeur et non du bloc-notes). Pour que le texte s'affiche correctement en HTML, vous devez ajouter des CR au texte copié dans SSMS. Pour ce faire, la meilleure solution consiste à exécuter une instruction UPDATE à l'aide de la fonction REPLACE pour ajouter des CR comme suit:

UPDATE table_name
SET column_name = REPLACE(column_name , CHAR(10), CHAR(13) + CHAR(10)).

J'utilise INSERT 'a' + Char (10) + 'b' IN TO où O quoi que ce soit

Ronnie,

La grille de données semble accepter toute tentative de coller un caractère de nouvelle ligne, y compris l'utilisation de ALT + 010. Microsoft ne répertorie pas les touches de raccourci qui pourraient aider. Les suspects habituels

<ctrl>enter, 
<alt> enter, 
<ctrl><alt> enter, 
<shift> enter, etc

ne fonctionne pas, comme vous l'avez signalé.

Pour mémoire, si vous effectuez un développement Web, les sauts de ligne ne seront de toute façon pas affichés dans le navigateur (ils sont interprétés comme des espaces supplémentaires et sont ignorés). Je devais remplacer le saut de ligne par

<br> 

Partout où je voulais qu'un saut de ligne apparaisse dans le navigateur (les zones de texte accepteront les sauts de ligne comme entrée utilisable).

Même si vous pouviez insérer un saut de ligne, je ne pense pas que la vue de la grille de données dans SSMS soit capable de l'afficher.

Essayez d’utiliser plutôt MS Access. Créez un nouveau fichier et sélectionnez le modèle «Projet utilisant des données existantes». Cela créera un fichier .adp.

Ouvrez simplement votre table et appuyez sur Ctrl + Entrée pour obtenir une nouvelle ligne.

Le collage à partir du Presse-papiers fonctionne également correctement.

Ceci est possible si vous avez un caractère Newline existant dans la ligne ou une autre ligne.

Sélectionnez la case carrée qui représente le caractère Newline existant, copiez-le (control-C), puis collez-le (control-V) à l'endroit souhaité.

C’est un peu ringard, mais j’ai réussi à le faire fonctionner dans SSMS 2008 et je n’ai pu obtenir aucune des autres suggestions (contrôle-entrée, alt-13 ou tout autre alt - ##) au travail.

cela fonctionne pour moi (Afficher les résultats sous forme de texte - les résultats sous forme de grille masquant les nouvelles lignes)

select '

a 

b

' 

Vous parlez de cliquer avec le bouton droit sur une table et de sélectionner "Modifier les 50 premières lignes", n'est-ce pas?

J'ai essayé [Ctl] [Enter] et [Alt] [Enter], mais aucun de ces travaux ne fonctionne.

Même lorsque j'insère des données avec CR / LF (à l'aide d'une instruction INSERT standard), elles apparaissent ici sur une seule ligne avec un rectangle représentant les codes de contrôle.

Si vous essayez de saisir des données directement dans la table en mode grille (sans doute en faisant un clic droit sur TableName et en sélectionnant Ouvrir une table), vous pouvez entrer votre chaîne de texte unicode et, chaque fois que vous souhaitez un retour à la ligne, tapez 13 avec la touche alt appuyez sur le pavé numérique.

Ce serait Alt + 13. Cela fonctionne uniquement à partir du pavé numérique et ne fonctionne pas avec les touches numériques situées en haut du clavier. Le retour de chariot sera stocké comme un carré

Je trouve que le moyen le plus simple de procéder pour les mises à jour non répétables consiste à utiliser MS Access et à créer une table liée, puis à mettre à jour les données à votre guise. Je suppose que l'équipe MS Access ne parle pas à l'équipe SMSS:)

J'ai essayé de saisir un caractère de nouvelle ligne à l'aide d'une feuille Excel. J'ai saisi mes données en écrivant " abc " sous une cellule vide dans Excel, puis mis à jour ma base de données à l'aide de la cellule vide située au-dessus de la cellule contenant le mot "abc". et la cellule avec des données. Je copie collé les deux cellules dans mon SSMS. Cela a fonctionné pour moi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top