it-swarm.com.de

So geben Sie ein neues Linienzeichen in SQL Server Management Studio ein

Wie kann ich in der Datagrid-Ansicht einer geöffneten Datentabelle ein neues Zeilenzeichen direkt in ein nvarchar-Feld in SSMS eingeben?

Gibt es einen alt code?

38
Ronnie Overby

Du kannst nicht.

Verwenden Sie stattdessen ein Fenster "Neue Abfrage" und führen Sie eine manuelle Aktualisierung durch:

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

Sie können die Zeilen aus einem Texteditor einfügen, der Zeilenenden im UNIX-Stil (CR + LF) verwendet. Ich benutze Notepad ++. Gehen Sie zuerst zu Einstellungen/Voreinstellungen/Neues Dokument und ändern Sie das Format von Windows in Unix. Öffnen Sie dann ein neues Dokument, geben Sie Ihre Zeilen ein und kopieren Sie sie in SSMS.

16
markltx

entweder char (13) oder char (10) würde funktionieren. Es wird jedoch empfohlen, char (13) + char (10) zu verwenden.

  • char (10) =\n - neue Zeile
  • char (13) =\r - gehe zum Zeilenanfang
8
tecfield

Sie können den Text im Notizblock vorbereiten und in SSMS einfügen. SSMS zeigt die Zeilenumbrüche nicht an, sie sind jedoch vorhanden, da Sie dies mit einer Auswahl bestätigen können:

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

Ich hatte anfangs Probleme (weiß nicht warum), bekam aber schließlich die folgenden Möglichkeiten, um mit SSMS für SQL Server 2008 zu arbeiten.

Fügen Sie ALT-13 und dann ALT-10 an einer beliebigen Stelle in Ihrem Text in einer Varchar-Spalte ein (Musiksymbol und -quadrat erscheinen und speichern Sie, wenn Sie die Zeile verlassen). Nach dem Verlassen erscheint zunächst eine Warnung (!) Links von der Reihe. Führen Sie einfach Ihre SELECT-Anweisung erneut aus. Die Symbole und die Warnung werden ausgeblendet, der CR/LF wird jedoch gespeichert. Sie müssen ALT-13 einschließen, wenn der Text ordnungsgemäß in HTML angezeigt werden soll. Um schnell festzustellen, ob dies funktioniert hat, kopieren Sie den gespeicherten Text aus SSMS in den Editor.

Wenn dies nicht funktioniert, können Sie dasselbe tun, indem Sie mit einer nvarchar-Spalte beginnen. Die Symbole werden jedoch als Text gespeichert, sodass Sie die Spalte muss in varchar konvertieren, wenn Sie die Symbole in CR/LFs konvertieren.

Wenn Sie Text aus einer anderen Quelle (andere Zeile oder Tabelle, HTML, Notepad usw.) kopieren und einfügen möchten und Ihr Text nicht bei der ersten CR abgeschnitten werden soll, habe ich festgestellt, dass die Lösung (Programmer's Notepad) auf den folgenden Link verweist arbeitet mit SSMS für SQL Server 2008 unter Verwendung der Spaltentypen varchar und nvarchar.

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

Der Autor des Beitrags (dbaspot) erwähnt etwas über das Erstellen von SQL-Abfragen - nicht sicher, was er meint. Folgen Sie einfach den Anweisungen zu Programmer's Notepad. Sie können Text von und nach SSMS kopieren und einfügen und die LFs auf beide Arten beibehalten (mit dem Editor von Programmer, nicht dem Editor). Damit der Text ordnungsgemäß in HTML angezeigt wird, müssen Sie must CRs zu dem in SSMS kopierten Text hinzufügen. Am besten führen Sie dazu eine UPDATE-Anweisung mit der REPLACE-Funktion aus, um CRs wie folgt hinzuzufügen:

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

Ich benutze INSERT 'a' + Char (10) + 'b' IN wo auch immer

1
Dour High Arch

Ronnie,

Das Datenraster scheint alle Versuche, ein Zeilenvorschubzeichen einzufügen, einschließlich der Verwendung von ALT + 010, zu verschlucken. Microsoft listet keine Tastenkombinationen auf, die helfen könnten. Die üblichen Verdächtigen 

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

arbeite nicht, wie du gesagt hast.

Für das Protokoll: Wenn Sie eine Webentwicklung durchführen, werden die Linefeeds sowieso nicht im Browser angezeigt (sie werden als zusätzlicher Leerraum interpretiert und ignoriert). Ich musste Zeilenvorschub mit ersetzen

<br> 

Überall, wo ich einen Zeilenumbruch im Browser anzeigen wollte (Textbereiche akzeptieren Zeilenvorschub als verwendbare Eingabe).

Selbst wenn Sie einen Zeilenumbruch einfügen könnten, glaube ich nicht, dass die Datenrasteransicht in SSMS ihn anzeigen kann.

1
Robert Harvey

Dieses ist möglich, wenn Sie ein bestehendes Newline-Zeichen in der Zeile oder eine andere Zeile haben.

Wählen Sie das Kästchen für das vorhandene Newline-Zeichen aus, kopieren Sie es (Steuerelement-C) und fügen Sie es (Steuerelement-V) an der gewünschten Stelle ein.

Dies ist etwas kitschig, aber ich habe es tatsächlich in SSMS 2008 zum Laufen gebracht und ich konnte keine der anderen Vorschläge (Strg-Enter, Alt-13 oder andere - ##) zum Laufen bringen.

1
Solomon Rutzky

Stellen Sie sicher, dass Sie MS Access verwenden. Erstelle eine neue Datei und wähle das Modell "Progetto usando i dati esistenti". Questo creerà il file .adp.

Fragen Sie nach einer Vorschau und einer PremiereCtrl+Enterper la nuova linea.

Incollare dagli Appunti funziona anche correttamente.

1
Pavel Chuchuva

Der einfachste Weg, dies für nicht wiederholbare Updates zu tun, besteht darin, MS Access zu verwenden, eine verknüpfte Tabelle zu erstellen und die Daten nach Bedarf zu aktualisieren. Ich denke, das MS Access Team spricht nicht mit dem SMSS Team :)

0
DaBomb

Sie sprechen davon, mit der rechten Maustaste auf eine Tabelle zu klicken und "Top 50 Zeilen bearbeiten" auszuwählen, oder?

Ich habe [Ctl] [Enter] und [Alt] [Enter] ausprobiert, aber keines dieser Werke.

Selbst wenn ich Daten mit CR/LF (mit einer Standard-INSERT-Anweisung) einfügen, werden sie hier in einer einzelnen Zeile angezeigt, wobei ein Rechteck die Steuercodes darstellt.

0
Rob Garrison

Ich habe versucht, ein neues Zeilenzeichen mit einem Excel-Sheet einzugeben .. Ich gab meine Daten ein, indem "abc" in eine leere Zelle in Excel geschrieben wurde. Anschließend wurde meine Datenbank mit der leeren Zelle über der Zelle mit "abc" und der Zelle mit aktualisiert Daten. Ich kopierte die beiden Zellen in meine SSMS ein

0
user7671497

Wenn Sie versuchen, Daten direkt in die Tabelle in der Rasteransicht einzugeben (vermutlich Rechtsklick auf TableName und Select Open Table), können Sie Ihre Unicode-Textzeichenfolge eingeben. Wo immer Sie einen Wagenrücklauf wünschen, geben Sie einfach 13 ein, wenn Sie die Alt-Taste gedrückt halten numerische Tastatur.

Das wäre Alt + 13. Dies funktioniert nur über die Zehnertastatur und nicht mit den Zahlentasten oben auf der Tastatur. Der Wagenrücklauf wird als Quadrat gespeichert

0
Raj

das funktioniert für mich (Ergebnisse als Text anzeigen - Ergebnisse als Raster verbergen die Zeilenumbrüche)

select '

a 

b

' 
0
Jimmy