使用数据类型

包含数据的对象都具有一个相关的数据类型,此数据类型定义对象所能包含的数据种类(字符、整数、二进制数等)。以下对象具有数据类型:

指定对象的数据类型定义了该对象的四个特性:

如果一个对象被定义为 money 类型,它最多可以包含 19 个数字,其中 4 个数字可以在小数点的右边。这个对象用 8 个字节存储数据。因此 money 数据类型的精度是 19,小数位数是 4,长度是 8。

Transact-SQL 含有以下基本数据类型:

bigint Binary bit char cursor
datetime Decimal float image int
money Nchar ntext nvarchar real
smalldatetime Smallint smallmoney text timestamp
tinyint Varbinary Varchar uniqueidentifier  

存储在 Microsoft® SQL Server™ 中的所有数据必须与上述这些基本数据类型之一相兼容。cursor 数据类型是唯一的不能赋值给表的列的基本数据类型。它只能用于变量和存储过程的参数。

一些基本数据类型具有同义词(比如,rowversion timestamp 的同义词,national character varyingnvarchar 的同义词)。有关同义词行为的更多信息,请参见数据类型同义词

也可以创建用户定义的数据类型,比如:

-- Create a birthday datetype that allows nulls.
EXEC sp_addtype birthday, datetime, 'NULL'
GO
-- Create a table using the new data type.
CREATE TABLE employee
emp_id
char(5)
emp_first_name
char(30)
emp_last_name
char(40)
emp_birthday
birthday



用户定义的数据类型总是根据基本数据类型进行定义的。它们提供了一种机制,可以将一个名称用于一个数据类型,这个名称更能清楚地说明该对象中保存的值的类型。这样程序员和数据库管理员就能更容易地理解以该数据类型定义的对象的意图。

SQL Server 实例包括一个名为 sysname 的用户定义数据类型。sysname 用于表列、变量和存储对象名的存储过程参数。sysname 的精确定义与标识符规则有关,因此在 SQL Server 的不同实例之间有所不同。sysname 在功能上与 nvarchar(128) 等效。SQL Server 6.5 版或更早版本仅支持更小的标识符;这样,在早期版本中 sysname 被定义为 varchar(30)

请参见

CREATE TABLE

数据类型

设计表

sp_addtype