首頁>Program>source

当我在網格中設置一个結果集時:

SELECT 'line 1
line 2
line 3'

SELECT 'line 1' + CHAR(13) + CHAR(10) + 'line 2' + CHAR(13) + CHAR(10) + 'line 3'

對於嵌入式CRLF,網格中的顯示似乎將它们替換為空格(我想這樣它们將顯示所有資料)。

問题是,如果我通過代碼生成指令碼,則不能簡單地剪切並粘贴它.我必须轉換代碼以打開游標並print相關的列,以便可以从文字結果中複製並粘贴它们。

是否有更簡單的解決方法来將CRLF保留在結果網格的複製/粘贴操作中?

網格之所以有用,是因為我当前在不同的列中為同一物件生成许多指令碼-在一列中包含bcp,另一列中包含xml格式檔案,另一列中有表建立指令碼,等等. ...

最新回復
  • 5月前
    1 #

    此問题已在SSMS 16.5內部版本13.0.16000.28中得到修複,並增加了在複製/儲存時保留CR / LF的選項(更多详细資訊)(連線錯誤)。

    Tools >Options

    展開 Query Results >SQL Server >Results to Grid

    Tick Retain CR/LF on copy or save

    重新啟動SSMS

    這將匯致 CRLFCRLF 在複製單元格時被视為換行符。

  • 5月前
    2 #

    我相信本文提供了多種有用的技術:http://sqlblogcasts.com/blogs/martinbell/archive/2009/10/25 /how-to-display-long-text-in-SSMS.aspx

  • 5月前
    3 #

    您可以做的一件事是將結果發送到檔案,然後使用能够查看檔案中變化的編輯器, 理解輸出的功能。

    understanding

    這是一種技巧,但是請尝試以下操作:

    將結果集換成REPLACE(.....,CHAR(13)+ CHAR(10),CHAR(182))以保留換行符,然後可以將其換迴

    SELECT 
        REPLACE ('line 1' + CHAR(13) + CHAR(10)+ 'line 2' + CHAR(13) + CHAR(10) + 'line 3'
                ,CHAR(13)+CHAR(10),CHAR(182)
                )
    

    輸出:

    ----------------------
    line 1¶line 2¶line 3
    (1 row(s) affected)
    

    將它们替換迴SQL:

    select replace('line 1¶line 2¶line 3',CHAR(182),CHAR(13)+CHAR(10))
    

    輸出:

    -------------------
    line 1
    line 2
    line 3
    (1 row(s) affected)
    

    或使用優質的文字編輯器。

  • 檢索Java註釋屬性
  • PHP更改陣列键