2013-06-11 7 views
8

Hier ist mein vereinfachtes Szenario:Sqlcmd Leerzeichen am Ende in Ausgabedatei

ich eine Tabelle in SQL Server 2005 mit einzelnen Spalte von varchar(500) Typ haben. Die Daten in der Spalte haben immer eine Länge von 350 Zeichen.

Wenn ich eine Auswahl im SSMS Abfrage-Editor ausführen, kopieren Sie & fügen Sie die Ergebnismenge in eine Textdatei ein, die Zeilenlänge in der Datei ist 350, die der tatsächlichen Datenlänge entspricht.

Aber wenn ich sqlcmd mit dem -o Parameter verwende, hat die resultierende Datei Zeilenlänge 500, die der maximalen Länge von varchar(500) entspricht.

Also Frage ist, ohne Verwendung von String-Funktionen in select, gibt es eine Möglichkeit, sqlcmd wissen, nicht zu behandeln, wie char(500)?

Antwort

13

Sie können die sqlcmd Formatierungsoption -W verwenden, um nachgestellte Leerzeichen aus der Ausgabedatei zu entfernen.

Lesen Sie mehr unter MSDN article.

+0

Ich bin mir sicher, da war etwas eigenartig über das, was ich eigentlich wollte, weil ich damals versucht habe -W und es hat nicht geholfen. Entweder habe ich etwas falsch gemacht oder vergessen, was ich genau brauchte, aber deine Antwort löst das, was ich in der Post gefragt habe. Vielen Dank. – Brian

+0

Dachte, ich würde verrückt werden, bis ich das gefunden habe! – Adam

0

-W funktioniert nur mit Standardgröße von 256 für Spalten 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.

+0

arrrrgghhhhh ... – Adam

Verwandte Themen