Folgendes habe ich derzeit beim Ausführen von Abfragen in sqlcmd
:
1> SELECT 1,2,3,4
2> GO
----------- ----------- ----------- -----------
1 2 3 4
(1 rows affected)
Bei längeren Ergebnissen ist dieses Ausgabeformat zwar nicht lesbar, da es in das Terminal eingeschlossen wird.
Wie zeige ich die Ergebnisse vertikal an (entspricht \G
inmysql
)? Oder auf eine andere Art und Weise, die für Menschen lesbar sein kann?
sql-server
sqlcmd
Kenorb
quelle
quelle
Antworten:
Das erwartete Ergebnis bei Verwendung
SELECT F1, F2, F2
ist das Abrufen einer Spalte für jedes Feld im SELECT-Satz.quelle
Sie könnten UNION verwenden:
Ergebnisse:
quelle
Ich habe einen reinen T-SQL-Ansatz gefunden, um Ergebnisse VERTIKAL im Ergebnisfenster anzuzeigen . Es handelt sich um eine benutzerdefinierte gespeicherte Prozedur (sp_SHOWDOWN), die ich von diesem Link kopiere. Sie könnten damit herumspielen, um zu sehen, ob es hilft.
Der Autor weist auf einige Einschränkungen hin:
Hier ist eine kurze Beschreibung ( aus dem Beitrag entnommen ):
Einrichten eines Prüfstands mit Daten
Hier ist der eigentliche Prozess, um die Ergebnisse im vertikalen Format zurückzugeben
Hier sind die Ergebnisse
Update (09.02.2018)
Nachdem ich meine Antwort gepostet hatte, fügte Martin Smith einen Kommentar hinzu, der auf eine fantastisch einfache Herangehensweise an dieses Problem mit
FOR XML PATH
und ein paar verwiesCROSS APPLY
.Ich füge seine Lösung hier hinzu, falls der SQL Fiddle- Link nicht mehr funktioniert.
quelle
quelle
Wenn Sie es mit Feldern zu tun haben, die nicht so
varchar/nvarchar
einfach sind und wollen[Field] + char(13)
, können Sie dasCONVERT/CAST
Boilerplate mitCONCAT
(SQL v2012 +) überspringen , das alles verarbeiten soll, was Sie darauf werfenhttps://docs.microsoft.com/en-us/sql/t-sql/functions/concat-transact-sql
*
CONCAT
ist auf 254 Parameter begrenztquelle