简述PRIMARY KEY与identity(1,1)的含义
来源:互联网 发布:高晓松和罗振宇 知乎 编辑:程序博客网 时间:2024/06/15 23:43
PRIMARY KEY 约束
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。
一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。
当为表指定 PRIMARY KEY 约束时,Microsoft® SQL Server? 2000 通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可用来对数据进行快速访问。
假如 PRIMARY KEY 约束定义在不止一列上,则一列中的值可以重复,但 PRIMARY KEY 约束定义中的所有列的组合的值必须唯一。
如下图所示,titleauthor 表中的 au_id 和 title_id 列组成该表的组合 PRIMARY KEY 约束,以确保 au_id 和 title_id 的组合唯一。
当进行联接时,PRIMARY KEY 约束将一个表与另一个表相联。例如,若要确定作者与书名的对应关系,可以使用 authors 表、titles 表和 titleauthor 表的三向联接。因为 titleauthor 包含 au_id 和 title_id 两列,对 titles 表的访问可由 titleauthor 和 titles 之间的关联进行。
请参见
创建和修改 PRIMARY KEY 约束
©1988-2000 Microsoft Corporation。保留所有权利。
--------------
Transact-SQL 参考
IDENTITY(函数)
只用在带有 INTO table 子句的 SELECT 语句中,以将标识列插入到新表中。
尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。
语法
IDENTITY ( data_type [ , seed , increment ] ) AS column_name
参数
data_type
标识列的数据类型。标识列的有效数据类型可以是任何整数数据类型分类的数据类型(bit 数据类型除外),也可以是 decimal 数据类型。
seed
要指派给表中第一行的值。给每一个后续行指派下一个标识值,该值等于上一个 IDENTITY 值加上 increment 值。假如既没有指定 seed,也没有指定 increment,那么它们都默认为 1。
increment
用来添加到 seed 值以获得表中连续行的增量。
column_name
将插入到新表中的列的名称。
返回类型
返回与 data_type 相同的类型。
注释
因为该函数在表中创建一个列,所以必须用下列方式中的一种在选择列表中指定该列的名称:
--(1)
SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable
--(2)
SELECT ID_Num = IDENTITY(int, 1, 1)
INTO NewTable
FROM OldTable
示例
下面的示例将来自 pubs 数据库中 employee 表的所有行都插入到名为 employees 的新表。使用 IDENTITY 函数在 employees 表中从 100 而不是 1 开始编标识号。
USE pubs
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'employees')
DROP TABLE employees
GO
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
SELECT emp_id AS emp_num,
fname AS first,
minit AS middle,
lname AS last,
IDENTITY(smallint, 100, 1) AS job_num,
job_lvl AS job_level,
pub_id,
hire_date
INTO employees
FROM employee
GO
USE pubs
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
请参见
CREATE TABLE
@@IDENTITY
IDENTITY(属性)
SELECT @local_variable
使用系统函数
©1988-2000 Microsoft Corporation。保留所有权利。
[code=SQL] 创建和维护数据库
PRIMARY KEY 约束
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。
一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。
当为表指定 PRIMARY KEY 约束时,Microsoft® SQL Server? 2000 通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可用来对数据进行快速访问。
假如 PRIMARY KEY 约束定义在不止一列上,则一列中的值可以重复,但 PRIMARY KEY 约束定义中的所有列的组合的值必须唯一。
如下图所示,titleauthor 表中的 au_id 和 title_id 列组成该表的组合 PRIMARY KEY 约束,以确保 au_id 和 title_id 的组合唯一。
当进行联接时,PRIMARY KEY 约束将一个表与另一个表相联。例如,若要确定作者与书名的对应关系,可以使用 authors 表、titles 表和 titleauthor 表的三向联接。因为 titleauthor 包含 au_id 和 title_id 两列,对 titles 表的访问可由 titleauthor 和 titles 之间的关联进行。
请参见
创建和修改 PRIMARY KEY 约束
©1988-2000 Microsoft Corporation。保留所有权利。
--------------
Transact-SQL 参考
IDENTITY(函数)
只用在带有 INTO table 子句的 SELECT 语句中,以将标识列插入到新表中。
尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。
语法
IDENTITY ( data_type [ , seed , increment ] ) AS column_name
参数
data_type
标识列的数据类型。标识列的有效数据类型可以是任何整数数据类型分类的数据类型(bit 数据类型除外),也可以是 decimal 数据类型。
seed
要指派给表中第一行的值。给每一个后续行指派下一个标识值,该值等于上一个 IDENTITY 值加上 increment 值。假如既没有指定 seed,也没有指定 increment,那么它们都默认为 1。
increment
用来添加到 seed 值以获得表中连续行的增量。
column_name
将插入到新表中的列的名称。
返回类型
返回与 data_type 相同的类型。
注释
因为该函数在表中创建一个列,所以必须用下列方式中的一种在选择列表中指定该列的名称:
--(1)
SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable
--(2)
SELECT ID_Num = IDENTITY(int, 1, 1)
INTO NewTable
FROM OldTable
示例
下面的示例将来自 pubs 数据库中 employee 表的所有行都插入到名为 employees 的新表。使用 IDENTITY 函数在 employees 表中从 100 而不是 1 开始编标识号。
USE pubs
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'employees')
DROP TABLE employees
GO
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'
SELECT emp_id AS emp_num,
fname AS first,
minit AS middle,
lname AS last,
IDENTITY(smallint, 100, 1) AS job_num,
job_lvl AS job_level,
pub_id,
hire_date
INTO employees
FROM employee
GO
USE pubs
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
请参见
CREATE TABLE
@@IDENTITY
IDENTITY(属性)
SELECT @local_variable
使用系统函数
- 简述PRIMARY KEY与identity(1,1)的含义
- 简述PRIMARY KEY与identity(1,1)的含义
- PRIMARY KEY与identity(1,1)的比较
- PRIMARY KEY与identity(1,1)的比较 原创 2016年03月11日 11:08:13 标签:SQL Server /primary key /identity 1572 PRIMA
- PRIMARY KEY主键和IDENTITY属性函数的区别
- Unique Key 与 Primary Key 的比较
- MySql 的unique key 与 primary key
- Unique Key 与 Primary Key 的比较
- PRIMARY KEY 与 UNIQUE KEY 的区别
- Primary key 与Unique Key的区别
- PRIMARY KEY与 UNIQUE的区别
- primary key与unique的区别
- primary key与unique的区别
- PRIMARY KEY与 UNIQUE的区别?
- primary key与unique的区别
- primary key与unique的区别
- primary key与unique的区别
- primary key与unique的区别
- GAE(Google App Engine Datastore API)翻译(1)
- 10款常用的JAVA测试工具
- 二叉树遍历
- smarty 流程控制总结
- 一些免费的 Ajax & Javascript 图片画廊(二)——锐意志
- 简述PRIMARY KEY与identity(1,1)的含义
- 针对事务的一个问题的解答
- Ours Facebook研究报告---开篇
- Windows CE 的多语言支持 MUI(Multilingual User Interface)
- 我的职业生涯第一篇博客
- 开发可视化生成sql语句的组件?
- ACCESS中isnull+iif 实现SQL Server中的isnull函数
- 《墨舞》
- 手势识别,要记得动作识别用链码