12

SQLServerからCSV形式にデータをエクスポートしようとしています。これを行うためのバットタスクがあり、定期的に実行されます。コマンドは次のとおりです。

SQLCMD.EXE -d [db details] -i c:\export.sql -o c:\export.csv -s"," -W 

SQLファイルは、ビューからの単なるSELECT*です。

これは、一部の行のデータにコンマが含まれていることを除いて機能するため、値を引用符で囲む必要があります。列区切り文字を「'、'」に変更することもできますが、データ内の一重引用符をエスケープするにはSQLServerが必要です。

残念ながら、区切り文字を別の文字に変更しても、100%の場合、フィールドの1つに、あらゆる種類の奇妙で素晴らしい文字を含む別のアプリケーションからのシリアル化されたデータが含まれているため、問題が解決する可能性はありません。

標準の引用されたCSVデータを取得する方法はありますか?

4

1 に答える 1

13

QUOTENAME関数を使用するようにSELECTステートメントを変更できるはずです。もちろん、を使用するのではなく、すべての列を個別にリストする必要がありますSELECT *

注:画面上では読みにくい場合がありますが、QUOTENAMEの2番目のパラメーターは次のとおりです。

{一重引用符}{二重引用符}{一重引用符}

SELECT QUOTENAME(Column1, '"'), QUOTENAME(Column2, '"')
    FROM YourView
于 2010-10-08T18:55:58.000 に答える