如何獲取SQL Server Management Studio中行的完整內容?如何從SSMS獲取完整結果集
如果您使用「網格結果」數據進行編碼,所以換行符等內容會丟失。如果您的結果是「文件結果」或「結果到文本」,則文本限制爲8192個字符。
注:我有解決方案,但我使用SO來記錄此。如果您有更好的答案,請隨時發佈。
如何獲取SQL Server Management Studio中行的完整內容?如何從SSMS獲取完整結果集
如果您使用「網格結果」數據進行編碼,所以換行符等內容會丟失。如果您的結果是「文件結果」或「結果到文本」,則文本限制爲8192個字符。
注:我有解決方案,但我使用SO來記錄此。如果您有更好的答案,請隨時發佈。
一個DBA的我公司提出了一個可行的辦法是把數據放到一個臨時變量,然後在循環中使用打印功能,像這樣:
DECLARE @contents varchar(MAX)
SET @contents = ''
SELECT @contents = @contents + Contents + CHAR(13)
FROM dbo.tFOO
WHERE someConition
DECLARE @tContents TABLE (id int IDENTITY, contents varchar(MAX))
WHILE @contents LIKE '%' + CHAR(13) + '%'
BEGIN
PRINT SUBSTRING(@contents, 0, CHARINDEX(CHAR(13), @contents))
SET @contents = SUBSTRING(@contents, CHARINDEX(CHAR(13), @contents)+1, LEN(@contents) - CHARINDEX(CHAR(13), @contents))
END
我將其轉換爲XML
select @variable_with_long_text
as [processing-instruction(x)] FOR XML PATH
的processing-instruction
位有阻止它entitising字符,如<
到<
我開發一個外接對於SSMS - 「SSMSBoost」並且最近添加了「複製單元格內容1:1」特徵(可在網格的上下文菜單中訪問)。它會將您單元格中的所有數據返回給您,而不會進行任何修改並且不會截斷。
只要使用默認的「結果到網格,然後右鍵單擊網格結果,選擇‘另存結果......’CSV。
的全部內容將被保存在文件中,即使有換行符。一些varchar(max)列的內容大約爲3MB,並且保存成功,不會被截斷。
簡單地將它轉換爲xML會給你所有的數據?有趣的。 – javamonkey79
爲了這個工作,我首先必須將我的列數據選擇到一個變量中,然後按照描述進行XML轉換。 – danjuggler
可以將它變成一個聰明的函數或我能記得的東西 –