現象
Microsoft SQL Server Management Studio (SSMS) または SQL Server Data Tools (SSDT) を使用して、テーブルを CSV ファイルとしてエクスポートします。 たとえば、SQL Server Integration Services (SSIS) プロジェクトでテーブルを CSV 形式にエクスポートします。
テキスト区切り記号として二重引用符 (") を選択し、レコードに二重引用符が含まれている場合、出力で記号が正しくエスケープされない可能性があります。
使用例
| 元のデータ | big"data |
|---|---|
| 予想される出力 | "big""data" |
| 実際の出力 | "big"data" |
解決策
この問題の修正プログラムは、次の SQL Server の更新プログラムに含まれています。
SQL Server 2017 の累積的な更新プログラム 8
この更新プログラムをインストールしてから、CSV 形式を使用してテーブルをエクスポートする場合は、その値を True に設定して「エスケープ修飾子」機能をオンにする必要があります。
エスケープ動作を使用する場合は、保存されている SSIS パッケージの SSDT で "エスケープ修飾子" 機能を変更する必要があります。
次のスクリーンショットは、 EscapeQualifier プロパティの詳細を示しています。
注
- SQL Server インポートとエクスポート ウィザードには、EscapeQualifier プロパティが既定で無効になっているため、この機能をオンにできないという制限があります。
- この機能を利用するには、ウィザードを使用して SSIS パッケージを保存し、SSDT を使用してそのプロパティを変更する必要があります。
- 詳細については、「フラット ファイルのカスタム プロパティ - SQL Server Integration Services (SSIS) |Microsoft Learn。
SQL Server ビルドについて
SQL Server の新しいビルドには、以前のビルドであったすべての修正プログラムとセキュリティ修正プログラムが含まれています。 ご使用のバージョンの SQL Server 用の最新ビルドをインストールすることをお勧めします。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
Microsoft がソフトウェア更新プログラムについて説明するために使用する標準 的な用語について説明します 。