如何为表设置多个主键?

时间:2010-09-29 09:14:43

标签: sql-server-2005 ssms

是否可以为表设置多个主键?

如果可以作为复合键 - 那么它如何与应用程序一起使用?

ADVANTAGES。?

3 个答案:

答案 0 :(得分:4)

不,那是不可能的。

然而:

主键中可以有多个字段。

您还可以为不在主键中的字段添加唯一索引。

答案 1 :(得分:0)

你做不到。表上只能有一个主键(这就是为什么它被称为主键...)。您唯一能做的就是在多列上指定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)
)

答案 2 :(得分:0)

不,表中不能有多个主键。是的,主键可以包含多个字段,但是,考虑到您的问题,我认为这不是您所需要的。 我不确定你需要什么,但主键有一些你可能在另一个领域寻找的功能:

Unicity:如果您需要在所有记录中具有唯一值的其他字段,则可以应用UNIQUE约束:

ALTER TABLE <table identifier> 
  ADD [ CONSTRAINT <constraint identifier> ] 
  UNIQUE ( <column expression> {, <column expression>}... )

速度:如果您经常搜索某个字段,并且需要加快查询速度,则可以向该字段添加索引。

CREATE INDEX <index identifier>
   ON <table identifier> (<field name>)