无法从 SSMS 获取完整长度的二进制数据

hin*_*531 2 sql-server ssms

桌子

  • id - 整数
  • 文件 - varbinary(最大)

询问

SELECT file 
FROM Table 
WHERE id = 1
Run Code Online (Sandbox Code Playgroud)

数据

id1数据有一个文件。它的二进制长度是836,412。但是当我运行查询时,我只看到 43,680 字节的二进制数据。

我尝试通过弹出面板中的“将结果另存为...”按钮将数据下载为 CSV。但是,我仍然无法获得二进制数据的完整长度。

在 CSV 中,只有 16 位(无符号,65534 长度)可用数据。不幸的是,我目前无法从我的应用程序中请求数据。我必须从 SSMS 中取出它并在我的测试代码中手动转换它才能查看该文件。

如何从 SSMS 获取完整的二进制数据?是否有显示完整长度的二进制数据的选项?

小智 5

您可以尝试使用如下查询将“文件”字段转换为 XML...

SELECT CAST(CONVERT(VARCHAR(MAX), file, 1) AS XML)
FROM Table
WHERE id = 1
Run Code Online (Sandbox Code Playgroud)

但是,您需要确认您的 SSMS 查询选项设置正确:

Query | Query Options... | Results | Grid | XML Data: unlimited
Run Code Online (Sandbox Code Playgroud)

这将为您提供十六进制结果,如下所示:

0x47494638396150003200F70 ...
Run Code Online (Sandbox Code Playgroud)