tingliuxingyu,主键“标识”是数据库中针对字段的一个属性,你可以参考一下SQL
Server的联机丛书。
创建和修改标识符列
每个表中只能创建一个标识符列和一个全局唯一标识符列。
IDENTITY 属性
标识符列可用 IDENTITY 属性建立,使应用程序开发人员得以对表中所插入的第一行指定
标识数字(Identity Seed 属性),并确定要添加到种子上的增量(Identity Increment
属性)以决定后面的标识数字。在向具有标识符列的表中插入值时,Microsoft® SQL
Server™ 2000 通过递增种子值的方法自动生成下一个标识值。
在用 IDENTITY 属性定义标识符列时应注意以下几点:
一个表只能有一列定义为 IDENTITY 属性,而且该列必须以 decimal、int、numeric、
smallint、bigint 或 tinyint 数据类型定义。
可指定种子和增量值。二者的默认值均为 1。
标识符列不允许空值,也不能包含 DEFAULT 定义或对象。
在设置 DENTITY 属性后,可以使用 IDENTITYCOL 关键字在选择表中引用该列。
可以使用 OBJECTPROPERTY 函数确定一个表是否具有 IDENTITY(标识)列,使用
COLUMNPROPERTY 函数确定 IDENTITY 列的名称。
全局唯一标识符
尽管 IDENTITY 属性自动为表生成行号,但不同表的标识符列可以生成相同的行号。
这是因为 IDENTITY 属性只须在所使用的表上保持唯一。如果应用程序需要生成在整个
数据库或世界各地所有网络计算机的全部数据库中均为唯一的标识符列,请使用
ROWGUIDCOL 属性、uniqueidentifier 数据类型和 NEWID 函数。
使用 ROWGUIDCOL 属性定义全局唯一标识符列时应注意;
一个表只能有一个 ROWGUIDCOL 列,且该列必须定义为 uniqueidentifier 数据类型。
SQL Server 不为该列自动生成值。若要插入全局唯一数值,应为列创建 DEFAULT 定义,
以使用 NEWID 功能生成全局唯一数值。
在设置 ROWGUIDCOL 属性后,使用 ROWGUIDCOL 关键字可在选择列表中引用该列。这与
使用 IDENTITYCOL 关键字引用 IDENTITY 列相似。
可使用 OBJECTPROPERTY 函数确定表是否含有 ROWGUIDCOL 列,使用 COLUMNPROPERTY
函数确定 ROWGUIDCOL 列的名称。
由于 ROWGUIDCOL 属性不强制唯一性,所以应使用 UNIQUE 约束以确保插入 ROWGUIDCOL
列的值是唯一的。
说明 如果表的标识符列经常执行删除操作,标识值间可能会产生断缺,删除的标识值
不能再使用。要避免出现这类断缺,请勿使用 IDENTITY 属性。而应在插入行时,以标
识符列中现有的数值为基础创建确定新标识值的触发器。