访问和更改关系数据  
使用数据类型
包含数据的对象都具有一个相关的数据类型,此数据类型定义对象所能包含的数据种类(字符、整数、二进制数等)。以下对象具有数据类型: 表和视图中的列。
存储过程中的参数。
变量。
返回一个或多个特定数据类型数据值的 Transact-SQL 函数。
具有一个返回代码的存储过程。返回代码总是具有 integer 数据类型。 
指定对象的数据类型定义了该对象的四个特性: 对象所含的数据类型,如字符、整数或二进制数。
所存储值的长度或它的大小。 
image、binary 和 varbinary 数据类型的长度以字节定义。任何数字数据类型的长度是指保存此数据类型所允许的数字个数所需要的字节数。string 和 Unicode 数据类型的长度以字符数定义。数字精度(仅用于数字数据类型)。 
精度是数字可以包含的数字个数。例如,smallint 对象最多能拥有 5 个数字,所以其精度为 5。数值小数位数(仅用于数字数据类型)。 
小数位数是能够存储在小数点右边的数字个数。例如,int 对象不能含有小数点,小数位数为 0。money 对象的小数点右边最多可以有 4 个数字,小数位数为 4。如果一个对象被定义为 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 varying 是 nvarchar 的同义词)。有关同义词行为的更多信息,请参见数据类型同义词。也可以创建用户定义的数据类型,比如:-- Create a birthday datetype that allows nulls.
EXEC sp_addtype birthday, datetime, 'NULL'
GO
-- Create a table using the new data type.
CREATE TABLE employeeemp_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©1988-2000 Microsoft Corporation。保留所有权利。