Sqlcmd nachgestellte Leerzeichen in der Ausgabedatei

8

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?

    
Brian 11.06.2013, 19:26
quelle

2 Antworten

13

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

Lesen Sie mehr in diesem MSDN-Artikel .

    
cjohnsson 03.09.2013, 11:42
quelle
0

-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.

    
user1231501 05.02.2016 16:46
quelle

Tags und Links