在本教程中,将学习如何使用SQL Server CHAR数据类型在数据库中存储固定长度的非Unicode字符串。
CHAR数据类型简介
在SQL Server中,如果要存储固定长度的非Unicode字符串数据,请使用CHAR数据类型:
CHAR(n)
在此语法中,n指定字符串长度,范围从1到8000。
因为n是可选的,如果不在数据定义或变量声明语句中指定它,则其默认值为1。
仅当在列中值的大小固定时,才应使用CHAR数据类型。
将字符串值插入CHAR列时。 如果字符串值的长度小于列中指定的长度,SQL Server将向字符串值添加尾随空格到列中声明的长度。 但是,当查询选择此字符串值时,SQL Server会在返回之前删除尾随空格。
另一方面,如果插入长度超过列长度的值,SQL Server将发出错误消息。
请注意,CHAR的ISO同义词是CHARACTER,可以互换使用它们。
CHAR数据类型示例
以下语句创建一个包含CHAR列的新表:
CREATE TABLE test.sql_server_char (
    val CHAR(3)
);
请注意,如果数据库中没有test模式,则可以在创建sql_server_char表之前使用以下语句创建它:
CREATE SCHEMA test; 
GO
要将固定长度的字符串插入CHAR列,请使用INSERT语句,如下所示:
INSERT INTO test.sql_server_char (val)
VALUES
    ('ABC');
上面语句按预期那样工作。以下语句尝试插入长度超过列长度的新字符串:
INSERT INTO test.sql_server_char (val)
VALUES ('XYZ1');
SQL Server发出以下错误:
String or binary data would be truncated.
The statement has been terminated.
以下语句将单个字符插入test.sql_server_char表的val列:
INSERT INTO test.sql_server_char (val)
VALUES
    ('A');
在SQL Server中,LEN函数返回指定列中排除尾随空白的字符数,DATALENGTH函数返回字节数。
请参阅以下语句:
SELECT
    val,
    LEN(val) len,
    DATALENGTH(val) data_length
FROM
    sql_server_char;
执行上面查询,得到以下结果:
即使字符“A”只是一个字符,列的字节数也是固定的,即:3。
在本教程中,学习了如何使用SQL Server CHAR数据类型在数据库中存储固定长度的非Unicode字符串。
						上一篇:
								SQL Server数据类型
												下一篇:
								SQL Server数据定义
												
						
						
					
					
					