次のような結果セットがグリッドにある場合:
SELECT 'line 1
line 2
line 3'
または
SELECT 'line 1' + CHAR(13) + CHAR(10) + 'line 2' + CHAR(13) + CHAR(10) + 'line 3'
CRLFが埋め込まれていると、グリッド内の表示がスペースに置き換わっているように見えます(すべてのデータが表示されるようになっていると思います)。
問題は、スクリプトをコード生成している場合、これを単純にカットアンドペーストできないことです。コードを変換してカーソルを開き、関連する列を印刷して、テキストの結果からコピーして貼り付ける必要があります。
結果グリッドからのコピー/貼り付け操作でCRLFを保持するためのより簡単な回避策はありますか?
グリッドが役立つ理由は、現在、同じオブジェクトに対して異なる列に多数のスクリプトを生成しているためです。ある列にbcp出力、別の列にxml形式のファイル、別の列にテーブル作成スクリプトなどがあります。
この記事には、役立つテクニックがいくつかあると思います。 http://sqlblogcasts.com/blogs/martinbell/archive/2009/10/25/How-to-display-long-text-in-SSMS。 aspx
この問題は SSMS 16.5ビルド13.0.16000.28 で修正され、コピー/保存時にCR/LFを保持するオプションが追加されました( 詳細 )( 接続バグ )。
これにより、セルをコピーするときに、CR
、LF
、およびCRLF
が改行として扱われます。
できることの1つは、結果をファイルに送信してから、ファイルの変更を監視できるエディターを使用することです。このエディターは、出力を理解するための優れた機能を備えています。