如何在SQL Server Management Studio中获取行的完整内容?
如果使用"结果到网格",数据将被编码,因此会丢失换行符等内容.如果您执行"结果到文件"或"结果到文本",则文本限制为8192个字符.
注意:我有解决方案,但我使用SO来记录这个.如果您有更好的答案,请随意发布.
Mar*_*ith 44
我把它转换为XML
select @variable_with_long_text
as [processing-instruction(x)] FOR XML PATH
Run Code Online (Sandbox Code Playgroud)
该processing-instruction位是没有阻止它entitising字符,如<以<
我为SSMS开发了一个插件-“ SSMSBoost”,最近又添加了“复制单元内容1:1”功能(可在Grid的上下文菜单中访问)。它将从单元返回所有数据,而无需进行任何修改和截断。
小智 5
只需使用默认的“将结果网格化”,然后右键单击网格结果并选择“将结果另存为...” CSV。
完整内容将保存在文件中,即使有换行符也是如此。某些varchar(max)列的内容约为3MB,并保存确定,没有被截断。
jav*_*y79 -1
我公司的一位 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
Run Code Online (Sandbox Code Playgroud)