【发布时间】:2010-09-29 09:14:43
【问题描述】:
是否可以为一张表设置多个主键?
如果可以作为复合键 - 那么它如何与应用程序一起使用??
ADVANTAGES.?
【问题讨论】:
标签: sql-server-2005 ssms
是否可以为一张表设置多个主键?
如果可以作为复合键 - 那么它如何与应用程序一起使用??
ADVANTAGES.?
【问题讨论】:
标签: sql-server-2005 ssms
不,这是不可能的。
但是:
主键中可以有多个字段。
您还可以为不在主键中的字段添加唯一索引。
【讨论】:
你不能。表上只能有一个主键(这就是它被称为主键的原因..)。您唯一能做的就是在多个列上指定一个 PRIMARY KEY(但这取决于数据库布局:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
【讨论】:
不,您不能在一个表中拥有多个主键。是的,主键 可以 包含多个字段,但是,考虑到您的问题,我认为这不是您所需要的。 我不确定您到底需要什么,但主键有一些您可能正在另一个领域寻找的功能:
唯一性:如果您需要另一个在所有记录中具有唯一值的字段,您可以应用唯一性约束:
ALTER TABLE <table identifier>
ADD [ CONSTRAINT <constraint identifier> ]
UNIQUE ( <column expression> {, <column expression>}... )
速度:如果您有一个经常被搜索的字段,并且需要加快查询速度,您可以为该字段添加索引。
CREATE INDEX <index identifier>
ON <table identifier> (<field name>)
【讨论】: