即使Len([field])显示字符,SQL Server字段即使作为空白



希望这对某人来说是一个快速的。.我有一个SQL Server 2012(我认为),其中一张表使我有些困惑。

列类型为nvarchar(max)。我发现了几个记录,由于某种原因,这些记录在该列中空白了 - 即使我知道其中有数据。我只是看不到它!

例如,sql命令

select 
    contentbody, 
    datalength(contentbody), 
    len(contentbody), 
    rtrim(contentbody) 
from 
    ContentSource 
where 
    contentid=4022

这显示了以下结果

contentbody = (blank)
datalength = 58
len = 57
rtrim = (blank) 

因此,我可以从len()和dataLength()函数中看到那里有东西。但是我根本无法访问它。我从我们的.NET(4.5)网站和SQL Server Management Studio中看到了这个问题。

有什么想法吗?我尝试过cast()和convert(),但它总是返回空白。感谢您的任何建议!

您在字符是的评论中说。

0x00480061007600650020006900200067006F0074002000610020006E006500770020006C006F0076006500200063006F006D0069006E00670020 

这看起来应该是

0x480061007600650020006900200067006F0074002000610020006E006500770020006C006F0076006500200063006F006D0069006E006700

SELECT CAST(N'Have i got a new love coming' AS VARBINARY(100));

每对字节的顺序已与应有的相反。

即。0x0048代替0x4800等。

它可能包含不可打印的字符。您可以尝试将结果转换为字节数组,然后查看调试器中的字符代码。

最新更新