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同义词是字符。
答
数字上,答案是255. CHAR具有潜力范围为0到255.它是一个8位代码单位,用于为字段配置的字符编码(它可能继承从表或数据库)。
255是否是合法的代码单元是一个完整的代码点,它表示的字符,它的排序顺序(就是你所说的最大的意思?),取决于归类。 (排序规则指定一个字符编码和排序顺序。)
哦,如果你要SQL数据类型和别人比较,NVARCHAR和C#的char和.NET的字符全部使用UTF-16字符编码。
OP所指的是一个单独的字符,而不是在一个字段中的字符的最大数量的最大字节值。 – Anonymous
@Anonymous没有OP说什么*最大char值是在SQL *? – Rahul
@Rahul有关C#这句话结合起来,我认为解释“最大字符值”为“什么是可以存储在值范围一个字符“(或char(1)字段) –