该 select datalength(cast('12345' as nvarchar))
查询返回10(这是确定的),但
declare @string as nvarchar
set @string = cast('12345' as nvarchar)
select datalength(@string)
返回 2 而不是 10。如何使用DATALENGHT()来确定存储在变量中的字符串的datalength?
总是指定长度 n
的字符数据。
declare @string as nvarchar(30)
set @string = cast('12345' as nvarchar(30))
select datalength(@string)
不这样做的行为在文档中有所描述。
当数据定义或变量声明语句中没有指定n时,默认长度为1。 当CAST函数没有指定n时,默认长度为30。