Hier ist mein vereinfachtes Szenario:
Ich habe eine Tabelle in SQL Server 2005 mit einer einzelnen Spalte vom Typ varchar(500)
. Daten in der Spalte sind immer 350 Zeichen lang.
Wenn ich eine Auswahl im SSMS-Abfrageeditor ausführe, kopiere & amp; Fügen Sie das Ergebnis in eine Textdatei ein, die Zeilenlänge in der Datei beträgt 350, was der tatsächlichen Datenlänge entspricht.
Aber wenn ich sqlcmd
mit dem Parameter -o
verwende, hat die resultierende Datei die Zeilenlänge 500, die der maximalen Länge von varchar(500)
entspricht.
Die Frage ist also, dass select
keine String-Funktionen verwenden darf, gibt es eine Möglichkeit, sqlcmd
wissen zu lassen, sie nicht wie char(500)
zu behandeln?
Sie können die sqlcmd
Formatierungsoption -W
verwenden, um nachstehende Leerzeichen aus der Ausgabedatei zu entfernen.
Lesen Sie mehr in diesem MSDN-Artikel .
-W funktioniert nur mit der Standardgröße von 256 für Spalten mit variabler Größe. Wenn Sie mehr als das wollen, müssen Sie -y Modifikator verwenden, der Ihnen sagen wird, dass sie sich mit -W gegenseitig ausschließen. Im Grunde haben Sie kein Glück und wie in meinem Fall Datei von 0,5M bis 172M wächst. Sie müssen andere Möglichkeiten verwenden, um die Erzeugung von Leerraum nach der Datei zu entfernen. Irgendein PowerShell-Befehl oder etwas.
Tags und Links sql-server-2005 sqlcmd