SQL Server BCP: Wie setzen Sie Anführungszeichen um alle Felder?
Habe ich diese BCP-Befehl:
'bcp DBName..vieter out c:\test003.txt -c -T /t"\",\"" -S SERVER'
Der Ausgabe CSV bekomme ich nicht setzen Sie Anführungszeichen um Feld-Namen, stattdessen wird es um die Kommas! Wie bekomme ich die /t"\",\""
zu setzen Sie Anführungszeichen um alle Felder.
Danke an alle
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einstellung der terminator-Reihe zusätzlich zu den Feld-terminator sollte den trick tun
Dies wahrscheinlich zu arbeiten, aber verpasse den führenden " für das erste Feld der ersten Zeile, und vielleicht das Letzte, der Letzte, ich bin mir nicht sicher, nur raten wirklich, keine server hier!
oder verwenden Sie QUOTENAME-wrap text-Felder (Sie können auch wickeln Sie zahlen, aber das ist nicht normalerweise erforderlich.
QUERYOUT
und dann eine Abfrage erstellen, mitQUOTENAME(column,'"')
für text-Felder.EXEC master..xp_cmdshell @bcpCommand
Müssen Sie mit CHAR(34) für das Zitat. Diese Seite hat weitere details: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=153000
Hier sind die Liste der Befehle, die ich verwendet .
bcp "SELECT char(34) + * +char(34) FROM atable queryout "C:\temp\out.csv" -T -N -c /t"\",\""
Diese wird, setzen Sie Anführungszeichen vor und nach jedem Feld (einschließlich der ersten und der letzten).
Ich denke, Ihr Ziel war klar getrennte Feld-Werte durch die Verwendung einer eindeutigen Kennung, so dass die import-Prozedur nicht ein Problem.
Ich hatte dasselbe Problem und fand dieses workaroud nützlich: Mit einem ungewöhnlichen Feld terminator, zum Beispiel
|
oder sogar ein string/#/
werden können, sehr einzigartig und sollte nicht Durcheinander mit Ihren string-Inhalt. Sie können auch HEX-Werte (eingeschränkt, siehe https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-2017)export
import
Den tatsächlichen brauchbare Antwort, das entfernt die führenden zitieren, ist :
A) generieren Sie mit bcp-format-Datei :
B) Bearbeiten Sie die Datei manuell kopieren, Feld 1 bis Feld 0 oben, als das erste Feld, set Max_Length=1, und entfernen Sie die separator und eine quot war in Feld1
Der trick funktioniert, als Sie Sie ein Feld hinzufügen (Schnittstelle zum Datei) zu erkennen, die ersten seprator, die Ergebnisse in ein immer null-Wert, nicht aber eine Zeile hinzufügen (Schnittstelle für die Ausgabe der Abfrage).