DATALENGTH
返回bytes used
LEN
回报characters used
数数只是比较这些结果
DECLARE @VARCHAR VARCHAR(40) = 'RACING CLUB DE AVELLANEDA'
SELECT DATALENGTH(@VARCHAR) AS Bytes, LEN(@VARCHAR) AS Characters;
Bytes: 25 ==> As it is a variable length, returns 25
Characters: 25
DECLARE @VARCHAR CHAR(40) = 'RACING CLUB DE AVELLANEDA'
SELECT DATALENGTH(@VARCHAR) AS Bytes, LEN(@VARCHAR) AS Characters;
Bytes: 40 ==> As it is a fixed length, returns 40
Characters: 25
DECLARE @VARCHAR NVARCHAR(40) = 'RACING CLUB DE AVELLANEDA'
SELECT DATALENGTH(@VARCHAR) AS Bytes, LEN(@VARCHAR) AS Characters;
Bytes: 50 ==> As it is a variable length, returns 25*2 = 50
Characters: 25
DECLARE @VARCHAR NCHAR(40) = 'RACING CLUB DE AVELLANEDA'
SELECT DATALENGTH(@VARCHAR) AS Bytes, LEN(@VARCHAR) AS Characters;
Bytes: 80 ==> As it is a fixed length, returns 40*2 = 80
Characters: 25
你也可以轻松地添加+2
您DATALENGTH
为VARCHAR
数据类型
DECLARE @VARCHAR VARCHAR(40) = 'RACING CLUB DE AVELLANEDA'
SELECT DATALENGTH(@VARCHAR) AS Bytes
,LEN(@VARCHAR) AS Characters
,DATALENGTH(@VARCHAR) + 2 AS ActualUsedBytes
输出
Bytes Characters ActualUsedBytes
25 25 27
我明白了。有没有函数或sp来获取它需要的存储字节数? –
'DATALENGTH(@VARCHAR)+ 2' :) –