web-dev-qa-db-ja.com

SSMSの結果をグリッドに-CRLFはコピー/貼り付けで保存されません-より良いテクニックはありますか?

次のような結果セットがグリッドにある場合:

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形式のファイル、別の列にテーブル作成スクリプトなどがあります。

45
Cade Roux

この記事には、役立つテクニックがいくつかあると思います。 http://sqlblogcasts.com/blogs/martinbell/archive/2009/10/25/How-to-display-long-text-in-SSMS。 aspx

2
Cade Roux

この問題は SSMS 16.5ビルド13.0.16000.28 で修正され、コピー/保存時にCR/LFを保持するオプションが追加されました( 詳細 )( 接続バグ )。

  1. ツール>オプション
  2. 展開クエリ結果> SQL Server>結果をグリッドに
  3. ティックコピーまたは保存時にCR/LFを保持
  4. SSMSを再起動します

これにより、セルをコピーするときに、CRLF、およびCRLFが改行として扱われます。

75
Charles Gagnon

できることの1つは、結果をファイルに送信してから、ファイルの変更を監視できるエディターを使用することです。このエディターは、出力を理解するための優れた機能を備えています。

0
adolf garlic