CHAR的最大值是多少?

问题描述:

我想知道什么是最大的字符值是在SQL?我注意到在C#中这\uFFFF,但是当我使用该值来比较一个字符串SQL呈现为一个空字符串,我认为。CHAR的最大值是多少?

表为SQL_Latin1_General_CP1_CI_AS如果该事项。

还有就是深深的误解是什么ASCII ...

ASCII是7位代码(0〜127)里的人物是固定

第8位提供了这个范围第二次(128到255)。在这个区域中,字符取决于代码页和排序规则。

CHAR

思想为​​(在内存中的8位)被误导...

试试这个,都返回一个captial A

SELECT CHAR(65) COLLATE Latin1_General_CI_AS 
SELECT CHAR(65) COLLATE Arabic_CI_AS 

代码255呈现与Latin1_General_CI_ASÿ,与阿拉伯语整理似乎没有可打印的字符,因此是问号。

SELECT CHAR(255) COLLATE Latin1_General_CI_AS 
SELECT CHAR(255) COLLATE Arabic_CI_AS 

因此,在短期:SQL呈现为一个空字符串是不正确的。这取决于您的设置

你有没有检查Documentation因为它清楚地说

的char [(N)]

固定长度,非Unicode字符串数据。 n定义 字符串长度,必须通过是从1的值。存储 大小是n个字节。字符的ISO同义词是字符。

+0

OP所指的是一个单独的字符,而不是在一个字段中的字符的最大数量的最大字节值。 – Anonymous

+0

@Anonymous没有OP说什么*最大char值是在SQL *? – Rahul

+0

@Rahul有关C#这句话结合起来,我认为解释“最大字符值”为“什么是可以存储在值范围一个字符“(或char(1)字段) –

数字上,答案是255. CHAR具有潜力范围为0到255.它是一个8位代码单位,用于为字段配置的字符编码(它可能继承从表或数据库)。

255是否是合法的代码单元是一个完整的代码点,它表示的字符,它的排序顺序(就是你所说的最大的意思?),取决于归类。 (排序规则指定一个字符编码和排序顺序。)


哦,如果你要SQL数据类型和别人比较,NVARCHAR和C#的char和.NET的字符全部使用UTF-16字符编码。