【问题标题】:How to set more than one primary key for a table?如何为一张表设置多个主键?
【发布时间】:2010-09-29 09:14:43
【问题描述】:

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

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

ADVANTAGES.?

【问题讨论】:

标签: sql-server-2005 ssms


【解决方案1】:

不,这是不可能的。

但是:

主键中可以有多个字段。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是复合键..??它是如何使用的..?/
    【解决方案3】:

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

    唯一性:如果您需要另一个在所有记录中具有唯一值的字段,您可以应用唯一性约束:

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

    速度:如果您有一个经常被搜索的字段,并且需要加快查询速度,您可以为该字段添加索引。

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

    【讨论】:

      猜你喜欢
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2013-02-08
      • 1970-01-01
      • 2020-07-27
      • 2013-10-30
      • 1970-01-01
      相关资源
      最近更新 更多