ntext列中的数据长度?

Nic*_*ick 47 sql-server

如何在SQL中的ntext列中找出数据的长度/大小? - 它超过8000字节,所以我无法将其转换为varchar.谢谢.

kor*_*rro 72

使用DataLength()

SELECT * FROM YourTable WHERE DataLength(NTextFieldName) > 0 
Run Code Online (Sandbox Code Playgroud)


one*_*hen 20

问题的线索:使用DATALENGTH().请注意,它具有不同的行为LEN():

SELECT LEN(CAST('Hello   ' AS NVARCHAR(MAX))), 
       DATALENGTH(CAST('Hello   ' AS NVARCHAR(MAX))), 
       DATALENGTH(CAST('Hello   ' AS NTEXT))
Run Code Online (Sandbox Code Playgroud)

返回5,16,16.

换句话说,DATALENGTH()不删除尾随空格并返回字节数,而LEN()修剪尾随空格并返回字符数.