sql2005数据类型

合集下载

SQL对Xml字段的操作

SQL对Xml字段的操作

SQL对Xml字段的操作T-Sql操作Xml数据一、前言SQL Server 2005 引入了一种称为XML 的本机数据类型。

用户可以创建这样的表,它在关系列之外还有一个或多个XML 类型的列;此外,还允许带有变量和参数。

为了更好地支持XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象(BLOB)。

用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中。

随着SQL Server 对XML字段的支持,相应的,T-SQL语句也提供了大量对XML操作的功能来配合SQL Server中XML字段的使用。

本文主要说明如何使用SQL语句对XML进行操作。

二、定义XML字段在进行数据库的设计中,我们可以在表设计器中,很方便的将一个字段定义为XML类型。

需要注意的是,XML字段不能用来作为主键或者索引键。

同样,我们也可以使用SQL语句来创建使用XML字段的数据表,下面的语句创建一个名为“docs”的表,该表带有整型主键“pk”和非类型化的XML 列“xCol”:CREATE TABLE docs (pk INT PRIMARY KEY, xCol XML not null)XML类型除了在表中使用,还可以在存储过程、事务、函数等中出现。

下面我们来完成我们对XML操作的第一步,使用SQL语句定义一个XML类型的数据,并为它赋值:declare @xmlDoc xml;set @xmlDoc='<book id="0001"><title>C Program</title><author>David</author><price>21</price></book>'三、查询操作在定义了一个XML类型的数据之后,我们最常用的就是查询操作,下面我们来介绍如何使用SQL 语句来进行查询操作的。

sql的数字类型

sql的数字类型

sql的数字类型1. SQL的数字类型介绍在SQL中,数字类型是一种用于存储数值数据的数据类型。

它们用于表示整数、小数、货币等数值。

在本文中,我们将详细介绍SQL 中常用的数字类型,并探讨它们的特点和用途。

2. 整数类型在SQL中,整数类型用于存储整数值。

常见的整数类型包括INT、BIGINT、SMALLINT等。

这些类型可以用来存储不同范围的整数值,例如INT可以存储范围在-2147483648到2147483647之间的整数。

3. 小数类型小数类型用于存储带有小数部分的数值。

在SQL中,常见的小数类型包括DECIMAL、NUMERIC、FLOAT和DOUBLE等。

这些类型可以用来存储不同精度和范围的小数值。

4. 货币类型在一些特定的应用中,需要存储货币值,以便进行金钱计算。

在SQL中,可以使用MONEY类型来存储货币值。

MONEY类型具有固定的精度和范围,可以确保准确的货币计算。

5. 日期和时间类型除了数值类型,SQL还提供了日期和时间类型,用于存储日期和时间信息。

常见的日期和时间类型包括DATE、TIME、DATETIME和TIMESTAMP等。

这些类型可以用来存储不同精度和范围的日期和时间值。

6. 逻辑类型逻辑类型用于存储逻辑值,即真或假。

在SQL中,可以使用BOOLEAN类型来存储逻辑值。

BOOLEAN类型只有两个可能的值,即TRUE和FALSE,用于表示逻辑条件的结果。

7. 枚举类型在某些情况下,需要将某个字段的值限制在一个预定义的列表中。

在SQL中,可以使用ENUM类型来实现这个功能。

ENUM类型允许将字段的值限制为一个固定的集合。

8. 位类型位类型用于存储二进制数据。

在SQL中,可以使用BIT类型来存储位值。

BIT类型可以存储0或1,用于表示开关状态或其他二进制数据。

9. 自定义类型除了上述常见的数字类型外,SQL还允许用户创建自定义的数字类型。

用户可以根据自己的需求定义新的数字类型,并在表中使用这些类型。

SQL中几种常用数据类型总结

SQL中几种常用数据类型总结

SQL中⼏种常⽤数据类型总结⼀、⼏种常⽤数据类型1、数值型:整数INT、⼩数NUMERIC、钱数MONEY⼀个INT型占⽤四个字节,范围为-21 4748 3647到21 4748 3647(10位),⽽⼀个TINYINT占⽤⼀个字节(只能存0-255的整数,不能⽤来存储负数)SMALLINT型数据范围从-32768到32768的整数。

⼀个NUMERIC型整数部分最⼤只能有28位,范围为-10^38到10^38之间的数,⼩数部分的位数必须⼩于或等于整数部分的位数,⼩数部分可以是零,定义语法NUNERIC(3,2),表⽰总位数为3,⼩数位数为2,如3.14。

MONEY型存储范围为-922,337,203,685.477,5808到922,337,203,685,477.5807的钱数,SMALLMONEY范围为-21 4748 3648到21 4748 3648的钱数。

2、字符型:VARCHAR CHAR都可以⽤来存储字符串长度⼩于255的字符区别:假如你定义个CHAR(10)⽤来存ABC,那么当你取出数据时,所取数据长度为10个字符,即为ABC (后⾯再跟7个空格),⽽VARCHAR不会,不会⽤空格来填充剩余的字符长度,存的为ABC,取时还为ABC ,注意当所存字符中含有中⽂等其他语⾔⽂字时因⽤NVARCHAR,在赋值时⼀定要在值前加N,如:N‘数据类型’。

3、⽂本型:TEXT 可以存超过20亿个字符的字符串⽂本型数据没有长度,缺点:慢,滥⽤会导致服务器速度变慢,还会占⽤⼤量空间,所以能避免使⽤就避免使⽤。

4、逻辑型 BITBIT型只能取0或者1,相当于Csharp中的bool型,可以⽤来存复选框的结果信息。

5、⽇期型 DATETIME SMALLDATETIME⼀个DATETIME型存储范围从1753年1⽉1⽇第⼀毫秒到9999年12⽉31⽇最后⼀毫秒。

SMALLDATEINT范围为1900年1⽉1⽇到2079年6⽉6⽇,只精确到秒。

sql 小数点两位数据类型

sql 小数点两位数据类型

sql 小数点两位数据类型
SQL是一种用于管理关系型数据库的编程语言,小数点两位数据类型是其中一种数据类型。

在SQL中,小数点两位数据类型通常被称为DECIMAL或NUMERIC 类型。

这种数据类型用于存储小数点后两位的数字,也就是百分之一的精度。

DECIMAL或NUMERIC类型可以指定小数点前和小数点后的最大位数。

例如,DECIMAL(10,2)指定了最多可以存储10位数字,并且小数点后最多可存储两位数字。

如果尝试存储超过指定位数的数字,则会返回错误。

小数点两位数据类型在金融和商业领域中非常常见,因为它可以提供非常准确的数字精度,同时还能够节省存储空间。

在使用SQL时,需要注意小数点两位数据类型的舍入规则。

默认情况下,SQL会将小数点后第三位四舍五入到第二位。

但是,可以通过设置不同的舍入规则来进行自定义。

- 1 -。

XML和SQL Server集成 创建XML数据类型变量

XML和SQL Server集成  创建XML数据类型变量

XML和SQL Server集成创建XML数据类型变量
作为SQL Server 2005系统中的一种基本数据类型,同样可以像使用其他基本数据类型来定义一个变量那样,定义一个基于XML数据类型的变量。

与声明其他类
其中除variable_name用于表示变量名之外,其他参数的含义与上一节中介绍的创建数据表时使用的参数是一致的。

下面通过示例说明XML类型变量的使用方法,单击【新建查询】按钮,在【查
上述Transact-SQL脚本中声明了一个名为@CategoryInfo的XML型变量,并使用SET命令对该变量进行赋值。

然后再通过该变量向数据表xml_Categories中插入一条记录。

单击【执行】按钮,执行上述Transact-SQL脚本,向数据库xml_Categories中插入一条记录,如图6-4所示。

图6-4 执行结果
继续在【查询编辑器】中输入下面的Transact SQL脚本,将上述脚本中的</CategoryName>更改为</categoryname>会出现什么样的情况呢?单击【执行】按
钮,【查询编辑器】将报告如图6-5所示的错误。

图6-5 执行结果
由此可见,XML的确是区分大小写的,因此在输入XML类型的数据时,一定要注意标签的大小写一定要统一。

而在Transact-SQL中,所有的变量都是不区分大
小写的。

因此在Transact-SQL中编写带有XML元素的脚本时应该注意两者的区别。

第1章SQLServer2005入门教程

第1章SQLServer2005入门教程
4
后来,Ashton-Tate公司退出了SQL Server 的开发。
而在Windows NT推出后,Microsoft与 Sybase在SQL Server的开发上就分道扬镳 了:
–Microsoft将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server的 Windows NT版本;
32
•在IIS中配置SQL XML支持(Configure SQL XML Support in IIS)
•IIS(Internet Information Services 因 特网信息服务),此工具可以在运行IIS的 计算机上定义、注册虚拟目录,并在虚拟目 录和SQL Server 实例之间创建关联。
9
客户机/服务器方式
客户机/服务器方式是在后端使用专门的 服务器,在服务器中建立大型数据库系 统,如常用的SQL Server, Oracle和 Informix等,该服务器称为数据库服务器. 前端客户应用系统可以是各种软件工具 开发的系统。
10
文件服务器和客户机/服务器 方式的比较
文件服务器方式: 客户端向文件服务器 发出数据库请求,文件服务器通过网络 向客户端发送完成的文件拷贝,造成网 络中传输冗余的数据,负载多.
19
2. 新的数据类型
• SQL Server 2005 中增加了3 种新的数据类型: BIGINT、SQL_VARIANT和TABLE。
3. 数据行中的Text类型数据
• SQL Server 2005 中可以将TEXT 和IMAGE 类型 的数据直接存放到表的数据行中,而不是存放到 数据页中,这就减少了用于存储TEXT 和IMAGE 类型的空间,并相应减少了磁盘处理这类数据的 I/O 数量。

sql server数据库无符号的整数类型

SQL Server数据库是一种常用的关系型数据库管理系统,它支持多种数据类型,包括整数类型。

在SQL Server中,整数类型可以分为有符号整数和无符号整数两种。

而在实际应用中,无符号整数类型在某些场景下可以提供更高的性能和更大的数据范围。

本文将详细介绍SQL Server数据库中无符号整数类型的使用方法和注意事项。

一、无符号整数类型概述1.1 有符号整数类型有符号整数类型是指可以表示正数、负数和零的整数类型。

在SQL Server中,常见的有符号整数类型包括TINYINT、SMALLINT、INT 和BIGINT等,分别对应不同的数据范围和存储空间大小。

1.2 无符号整数类型无符号整数类型是指只能表示正数和零的整数类型,不能表示负数。

在一些特定的场景下,无符号整数类型可以提供更大的数据范围,节省存储空间,并且在计算过程中不需要考虑正负数的符号位,因而具有一定的性能优势。

二、SQL Server中的无符号整数类型2.1 SQL Server 2005及之前的版本在SQL Server 2005及之前的版本中,并没有原生支持无符号整数类型的数据类型。

在这些版本中,如果需要使用无符号整数类型,通常需要通过其他方式来模拟实现,比如使用有符号整数类型并添加约束条件限制取值范围,或者使用字符串类型存储。

2.2 SQL Server 2008及之后的版本从SQL Server 2008开始,SQL Server引入了新的数据类型HUGEINT,用于存储无符号整数。

HUGEINT类型拥有64位,可以存储0~2^64-1的数据范围,不支持负数。

使用HUGEINT类型可以直接存储无符号整数,无需额外的约束条件,而且由于其底层存储结构的特点,可以提供较好的性能。

三、无符号整数类型的使用方法和注意事项3.1 使用方法在SQL Server 2008及之后的版本中,使用HUGEINT类型可以直接定义无符号整数类型的字段或变量,例如:```sqlCREATE TABLE ExampleTable(ID HUGEINT PRIMARY KEY);```在这个例子中,ID字段的数据类型为HUGEINT,可以存储无符号整数,并且作为主键使用。

SQL_Server数据类型详解

SQL Server 数据类型详解A.整数整数型数据包括bigint型、int型、smallint型和tinyint型。

·bigint型数据的存储大小为8个字节,共64位。

其中63位用于表示数值的大小,1位用于表示符号。

bigint型数据可以存储的数值范围是-263~263-1,即-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807。

·int型数据的存储大小为4个字节,共32位。

其中31位用于表示数值的大小,1位用于表示符号。

int型数据存储的数值范围是-231~231-1,即-2 147 483 648 ~ 2 147 483 647。

·smallint型数据的存储大小为2个字节,共16位。

其中15位用于表示数值的大小,1位用于表示符号。

smallint型数据存储的数值范围是-215~215-1,即-32 768 ~ 32 767。

·tinyint型数据的存储大小只有1个字节,共8位,全部用于表示数值的大小,由于没有符号位,所以tinyint型的数据只能表示正整数。

tinyint型数据存储的数值范围是-27~27-1,即-256~255。

B.浮点浮点数据类型用于存储十进制小数。

在SQL Server 2000中浮点数值的数据采用上舍入(Round up)的方式进行存储,也就是说,要舍入的小数部分不论其大小,只要是一个非零的数,就要在该数字的最低有效位上加1,并进行必要的进位。

由于浮点数据为近似值,所以并非数据类型范围内的所有数据都能精确地表示。

浮点数据类型包括real型、float型、decimal型和numeric型。

·real型数据的存储大小为4个字节,可精确到小数点后第7位数字。

这种数据类型的数据存储范围为从-3.40E+38 ~ -1.18E-38,0和1.18E-38 ~ 3.40E+38。

SQL Server2005 (2)

例如:学生关系 ??
关系模式与关系:关系模式是对关系的描述,是静态的、稳 定的;而关系是关系模式在某一时刻的状态或内容,是动态 的、随时间不断变化的。关系模式和关系往往统称为关系, 通过上下文加以区别。 三、关系数据库:在一个给定的应用领域中,所有实体及实
体之间联系的关系的集合构成一个关系数据库。关系数据库
关系R和S不一定是不同的关系。 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个( 或一组)域上。 外码并不一定要与相应的主码同名。 当外码与相应的主码属于不同关系时,往往取相同的名字, 以便于识别
二、参照完整性(Referential Integrity)
1、关系间的引用:在关系模型中实体及实体间的联系都是用 关系来描述的,因此可能存在着关系与关系间的引用。 [例1]学生实体、专业实体以及专业与学生间的一对多联系。 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) [例2]学生、课程、学生与课程之间的多对多联系。 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) [例3]学生实体及其内部的领导联系(一对多) 。 学生(学号,姓名,性别,专业号,年龄,班长)
不同列可来自同一个域:不同列(属性)要给予不同的属性名。 列的顺序无所谓:列的次序可以任意交换。 任意两个元组不能完全相同:这是由笛卡尔积的性质决定的。 行的顺序无所谓:行的次序可以任意交换。 分量必须取原子值:每一个分量都必须是不可分的数据项。
二、关系模式(Relation Schema):是对关系的描述
关系模式是型,而关系是值。 关系模式的形式化表示:R(U,D,dom,F)
其中:R为关系名,U为组成该关系的属性名集合,D 为属性组 U 中属性所来自的域, dom 为属性向域的映 象集合,F为属性间的数据依赖关系集合。 关系模式通常可以简记为R (U) 或 R (A1,A2,…,An)

SQL中的五种数据类型SQL server]教程

第3页 共5页
另外两种数据类型用于此目的。假如你盼望你的网点能挣许多钱, 你可以运用 MONEY 型数据。假如你的野心不大,你可以运用 SMALLMONEY 型数据。MONEY 型数据可以存储从-922,337,203, 685,477.5808 到 922,337,203,685,477.5807 的钱数。假如 你须要存储比这还大的金额,你可以运用 NUMERIC 型数据。 SMALLMONEY 型数据只能存储从-214,748.3648 到 214,748.3647 的钱数。同样,假如可以的话,你应当用 SMALLMONEY 型来代替 MONEY 型数据,以节约空间。
数值型 SQL 支持很多种不同的数值型数据。你可以存储整数 INT、小数 NUMERIC、和钱数 MONEY。 INTVSSMALLINTVSTINYINT 他们的区分只是字符长度: INT 型数据的表数范围是从-2,147,483,647 到 2,147,483, 647 的整数
第2页 共5页
SMALLINT 型数据可以存储从-32768 到 32768 的整数 TINYINT 型的字段只能存储从0到 255 的整数,不能用来储存负数 通常,为了节约空间,应当尽可能的运用最小的整型数据。一个 TINYINT 型数据只占用一个字节;一个 INT 型数据占用四个字节。 这看起来好像差异不大,但是在比拟大的表中,字节数的增长是 很快的。另一方面,一旦你已经创立了一个字段,要修改它是很 困难的。因此,为平安起见,你应当预料以下,一个字段所须要 存储的数值最大有可能是多大,然后选择适当的数据类型。 MUNERIC 为了能对字段所存放的数据有更多的限制,你可以运用 NUMERIC 型数据来同时表示一个数的整数局部和小数局部。NUMERIC 型数 据使你能表示特别大的数——比 INT 型数据要大得多。一个 NUMERIC 型字段可以存储从-1038 到 1038 范围内的数。NUMERIC 型数据还使你能表示有小数局部的数。例如,你可以在 NUMERIC 型字段中存储小数 3.14。 当定义一个 NUMERIC 型字段时,你须要同时指定整数局部的大小 和小数局部的大小。如:MUNERIC(23,0) 一个 NUMERIC 型数据的整数局部最大只能有 28 位,小数局部的位 数必需小于或等于整数局部的位数,小数局部可以是零。 MONEYVSSMALLMONEY 你可以运用 INT 型或 NUMERIC 型数据来存储钱数。但是,特地有
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ID 数据类型 说明

1精确数字 bigint -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807) 8 字节 int -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)

4 字节 decimal decimal 和 numeric,两者都是带固定精度和小数

位数的数值数据类型。decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )] 两者都是固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。numeric 在功能上等价于 decimal。p(精度)最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。s(小数位数)小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化

numeric

smallint -2^15 (-32,768) 到 2^15-1 (32,767)

2 字节 money money 8 字节 tinyint 0 到 255

1 字节 smallmoney 4 字节 money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。 bit bit 可以取值为 1、0 或 NULL 的整数数据类型。如果表中的列为 8 bit 或更少,则这些列作为 1 个字节存储。如果列为 9 到 16 bit,则这些列作为 2 个字节存储,以此类推。字符串值 TRUE 和 FALSE 可以转换为以下 bit 值:TRUE 转换为 1,FALSE 转换为 0。 2近似数字 float float [ ( n ) ] 其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53。 real 4 字节

3日期和时间 datetime 1753 年 1 月 1 日到 9999 年 12 月 31 日 3.33 毫秒 datetime用两个 4 字节的整数存储,第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。另外一个 4 字节存储天的时间(以午夜后经过的毫秒数表示)。 smalldatetime 1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分钟

smalldatetime 数据类型存储天的日期和时间,但精确度低于 datetime。数据库引擎 将 smalldatetime 值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后经过的分钟数。 4字符串 char char [ ( n ) ]可以存储字母数字值,固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30。 text text服务器代码页中长度可变的非 Unicode 数据,最大长度为 2^31-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储仍是 2,147,483,647 字节。根据字符串,存储大小可能小于 2,147,483,647 字节。

备注:在 Microsoft SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。请避免在新开发工作中使用这些数据类型,并考虑修改当前使用这些数据类型的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。 varchar varchar [ ( n | max ) ] 可以存储字母数字值,可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节。所输入数据的长度可以为 0 个字符。如果未在数据定义或变量声明语句中指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时未指定 n,则默认长度为 30。 5Unicode字符串 nchar nchar [ ( n ) ] ,n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节。如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。

备注:如果站点支持多语言,请考虑使用 Unicode nchar 或 nvarchar 数据类型,以最大限度地消除字符转换问题。 ntext ntext是长度可变的 Unicode 数据,最大长度为 2^30 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。 nvarchar nvarchar [ ( n | max ) ],可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。 6其他数据类型 cursor Ⅰ) 这是变量或存储过程 OUTPUT 参数的一种数据类型,这些参数包含对游标的引用。使用 cursor 数据类型创建的变量可以为空。

有些操作可以引用那些带有 cursor 数据类型的变量和参数,这些操作包括:

DECLARE @local_variable 和 SET @local_variable 语句。

OPEN、FETCH、CLOSE 及 DEALLOCATE 游标语句。

存储过程输出参数。 CURSOR_STATUS 函数。 sp_cursor_list、sp_describe_cursor、sp_describe_cursor_tables 以及 sp_describe_cursor_columns 系统存储过程。

备注:对于 CREATE TABLE 语句中的列,不能使用 cursor 数据类型。 timestamp 公开数据库中自动生成的唯一二进制数字的数据类型。timestamp 通常用作给表行加版本戳的机制。存储大小为 8 个字节。

每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。

使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。如果对行进行了更改,就会更新该时间戳值。如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。rowversion 的数据类型为 timestamp 数据类型的同义词,并具有数据类型同义词的行为。在 DDL 语句,请尽量使用 rowversion 而不是 timestamp。如果不指定列名,则 Microsoft SQL Server 2005 Database Engine 将生成 timestamp 列名;但 rowversion 同义词不具有这样的行为。在使用 rowversion 时,必须指定列名。不可为空的 timestamp 列在语义上等同于 binary(8) 列。可为空的 timestamp 列在语义上等同于 varbinary(8) 列 sql_variant 一种数据类型,用于存储 SQL Server 2005 支持的各种数据类型(不包括 text、ntext、image、timestamp 和 sql_variant)的值。

sql_variant 可以用在列、参数、变量和用户定义函数的返回值中。sql_variant 使这些数据库对象能够支持其他数据类型的值。 uniqueidentifier uniqueidentifier

相关文档
最新文档