web-dev-qa-db-ja.com

Windows7でSQLServer ManagementStudioからExcelにコピーするときの奇妙なバグ

SQL Management Studioでクエリを実行し(結果をグリッドに)、すべての結果を選択してヘッダー付きでコピーします。次に、Excelに貼り付けます。

結果:2つの特定のレコードがExcelの1つの行にまとめられます。

具体的には、最初に26000以上のレコードを取得し、このバグを発見した後、クエリを変更してこれら2つのレコードだけを取得しましたが、同じ現象が発生しましたが、他の26000レコードでは発生しませんでした。

Windows2003サーバーで実行されているSQLServer2000に接続されたWindows7マシンでManagementStudio2008を実行しています。 Excel2003とExcel2007の両方にコピーしようとしましたが、どちらの場合も発生します。

二重引用符と関係があるようです。 4番目のフィールド(varchar(50)型)には、両方の行(およびそれ以上)が二重引用符で囲まれていますが、最初または最後の文字ではありません。 2つのレコードの最初の(タイプvarchar(1000)の)6番目のフィールドには、最初の文字として二重引用符があります。最初のレコードの4番目のフィールドは正常に表示されます。最初のレコードの6番目のフィールドから2番目のレコードの4番目のフィールドまでのすべてのフィールドがExcelの同じセルに表示されます。ただし、最初のレコードの6番目のフィールドの終わりと2番目のレコードの4番目のフィールドの二重引用符は削除されます。 2番目のレコードの4番目のフィールドの二重引用符の後の文字は、同じセルに残ります。 2番目のレコードの残りのフィールドは、Excelの連続する列に表示されます。

メモ帳に貼り付けると、データは正常に表示されます。

正確なデータを提供することはできませんが、次の形式のようなものです。

    float   varchar(50) varchar(50) varchar(50) datetime    varchar(50) varchar(1000)   varchar(50)
    1.1 text    text    text"text   2012-01-01 00:00:00.000 text    "text   text
    1.1 text    text    text"text   2012-01-01 00:00:00.000 text    text    text

誰かが以前にこのバグに遭遇したことがありますか?問題のあるアプリケーションは何ですか? SQL Server Management Studio 2008、Windows 7、両方のバージョンのExcel、SQL Server 2000、Windows 2003? SQL Serverの場合、SQL Serverの内部でも発生しますか?

4
Ernst

これは非常に古い質問ですが、たまたま同じ問題が発生しました。これは「」文字が原因でした。クエリで置換構文を使用して削除したところ、機能しました。PSiもすべてのCRLRを削除しましたデータも。

(REPLACE(REPLACE(REPLACE(REPLACE(、CHAR(9)、 '')、CHAR(10)、 '')、CHAR(13)、 '')、CHAR(34)、 ''))

1
user2181585