我想知道数据是以单字节或双字节数据加载的,请找到如下粘贴的列数据:
حمد بخش مبار
select CTD_BENAC_NAME
from NAME_TRAN_DETAILS
where CTD_SEND_INS_REF ='FTSCWOK11074799'
它将在结果中给出阿拉伯数据,现在我只想知道数据是在 Sqlserver 中以单字节还是双字节加载的,请问我该如何决定?
我想知道数据是以单字节或双字节数据加载的,请找到如下粘贴的列数据:
حمد بخش مبار
select CTD_BENAC_NAME
from NAME_TRAN_DETAILS
where CTD_SEND_INS_REF ='FTSCWOK11074799'
它将在结果中给出阿拉伯数据,现在我只想知道数据是在 Sqlserver 中以单字节还是双字节加载的,请问我该如何决定?
这取决于该列的数据类型。在 SQL Server 中有两种字符数据类型——常规和 Unicode。常规数据类型是CHAR
和VARCHAR
。Unicode 数据类型,如NCHAR
和NVARCHAR
。对于常规字符,SQL Server 为每个字符使用一个字节的存储空间,而 Unicode 字符每个字符NVARCHAR
使用两个字节。
您还可以使用以下方法获取字符串使用的字节DATALEGNTH
数LEN
:
SELECT DATALENGTH(inputstring);
正如我稍后解释的那样,如果这inputstring
是类型NVARCHAR
或N'string'
DATALENGTH
会给你字节数。而这LEN
将为您提供一个字符串中的字符数,并且该长度不一定是字节数。
LEN
请注意, and之间的另一个区别DATALENGTH
是LEN
排除尾随空格,DATALENGTH
而不排除尾随空格。此外,请注意这些函数,因为它取决于排序规则,因为Varchar = single byte 并不总是正确的,正如下面的@MartinSmith 评论所指出的那样。
这是一个演示,您可以自己尝试。