私はこのBCPコマンドを持っています:
'bcp DBName..vieter out c:\test003.txt -c -T /t"\",\"" -S SERVER'
私が取得した出力 CSV は、フィールド名を引用符で囲んでおらず、代わりにコンマで囲んでいます! /t"\",\""
すべてのフィールドを引用符で囲むにはどうすればよいですか。
皆さんありがとう
私はこのBCPコマンドを持っています:
'bcp DBName..vieter out c:\test003.txt -c -T /t"\",\"" -S SERVER'
私が取得した出力 CSV は、フィールド名を引用符で囲んでおらず、代わりにコンマで囲んでいます! /t"\",\""
すべてのフィールドを引用符で囲むにはどうすればよいですか。
皆さんありがとう
フィールドターミネータに加えて行ターミネータを設定するとうまくいくはずです
'bcp DBName..vieter out c:\test003.txt -c -T -t"\",\"" -r"\"\n\"" -S SERVER'
これはおそらくうまくいくでしょうが、最初の行の最初のフィールドと、おそらく最後の行の最後のフィールドの先頭の " を見落としています - よくわかりませんが、本当に推測しているだけで、ここにはサーバーがありません!
または、QUOTENAME を使用してテキスト フィールドをラップしてみてください (数値をラップすることもできますが、通常は必要ありません)。
'bcp "SELECT id, age, QUOTENAME(name,'"') FROM DBName..vieter" queryout c:\test003.txt -c -T -t"," -S SERVER'
引用符には CHAR(34) を使用する必要があります。このページには詳細があります: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=153000
bcp "SELECT char(34) + * +char(34) FROM atable queryout "C:\temp\out.csv" -T -N -c /t"\",\""
これにより、各フィールドの前後に引用符が挿入されます (最初と最後を含む)。