SQL Server主键约束(PRIMARY KEY)
SQL Server PRIMARY KEY(主键)约束简介
主键是唯一标识表中每一行的一列或一组列。您可以使用主键约束为表创建主键。
如果主键仅包含一列,你可以使用PRIMARY KEY约束作为列约束:
CREATE TABLE table_name (
pk_column data_type PRIMARY KEY,
...
);如果主键有两列或多列,则必须将主键约束用作表约束:
CREATE TABLE table_name (
pk_column_1 data_type,
pk_column_2 data type,
...
PRIMARY KEY (pk_column_1, pk_column_2)
);每个表只能包含一个主键,一个主键可以包含多个列,即多个列的组合不能重复。参与主键的所有列必须定义为NOT NULL。如果未为所有主键列指定NOT NULL约束,SQL Server会自动为这些列设置非空约束。
SQL Server PRIMARY KEY约束示例
以下示例创建了一个具有主键的表,主键由一列组成:
CREATE TABLE dbo.activities (
activity_id INT PRIMARY KEY IDENTITY,--主键
activity_name VARCHAR (255) NOT NULL,
activity_date DATE NOT NULL
);在表dbo.activities中,activity_id列是主键列,意味着这一列的值不能重复
IDENTITY属性用于activity_id列自动生成唯一的整数值。
下面创建一个由两列组成外键的新表:
CREATE TABLE dbo.participants(
activity_id int,
customer_id int,
PRIMARY KEY(activity_id, customer_id)
);在本例中,activity_id或customer_id列中的值可以重复,但两列中的每个值组合都必须是唯一的。
通常,表总是在创建时定义主键。然而,有时,现有表可能没有定义主键。在这种情况下,可以使用ALTER TABLE语句向表中添加主键。比如示例:
先创建一个没有主键列的表:
CREATE TABLE dbo.events(
event_id INT NOT NULL,
event_name VARCHAR(255),
start_date DATE NOT NULL,
duration DEC(5,2)
);然后使event_id列成为主键:
ALTER TABLE sales.events ADD PRIMARY KEY(event_id);
注意,如果
sales.events表已经有数据,在将event_id列提升为主键之前,必须确保event_id中的值是不重复的。
到此这篇关于SQL Server主键约束(PRIMARY KEY)的文章就介绍到这了,更多相关SQL Server主键约束内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Windows 11安装SQL Server 2019出现"等待数据库引擎恢复句
这篇文章主要介绍了Windows 11安装SQL Server 2019出现"等待数据库引擎恢复句柄失败"问题完美解决方案,解决方案很简单,格式化您的硬盘,删除分区并重新指定扇区大小,本文给大家介绍的非常详细,需要的朋友参考下吧2023-07-07
SQL Server降权运行 SQL Server 2000以GUESTS权限运行设置方法
由于sql注入问题比较常见,很多黑客都是通过sqlserver数据库漏洞直接获取系统权限,所以sqlserver的安全设置尤为重要,简单简单分享下sqlserver低权限运行方法2014-07-07
SQLServer 2000 升级到 SQLServer 2008 性能之需要注意的地方之一
今天在 相同环境测试 2000 和 2008 性能 让我意外的是 2008 明显比2000 慢很多,因为不能简单的升级,sql语句也需要优化2012-02-02
SQL Server中的RAND函数的介绍和区间随机数值函数的实现
这篇文章主要介绍了SQL Server中的RAND函数的介绍和区间随机数值函数的实现 的相关资料,需要的朋友可以参考下2015-12-12


最新评论