本人刚开始工作不久,数据库方面比较菜,想请教一下数据库中双主键和复合主键的问题:
1.双主键是同时指定两个字段为主键吗?
2.复合主键在本质上是不是还是一个主键?
3.双主键和复合主键的定义方法分别是什么

解决方案 »

  1.   

    1、Yes
    2、Yes
    3、新手可以先用界面操作,然后看看创建表脚本来看看。
      

  2.   

    不好意思,界面点了半天找不到,用的SQL SERVER 2005,能具体说明一下吗?先谢谢你上面的回答
      

  3.   

    1 制定联合起来的两个列为一个主键(一个表只能有一个主键)
    2 本质上是一个主键
    3 你说的双主键一般叫做复合主键(至少我是这么说的)
    参考一下
     Create Table 表名 (字段名1 Int Not Null,
                        字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
                        字段名3…………
                        字段名N………… ) 
    建表之后更改表结构:     CREATE TABLE 表名 (字段名1 Int Not Null,
                           字段名2 nvarchar(13) Not Null
                           字段名3…………
                           字段名N…………)
        GO    ALTER TABLE 表名 WITH NOCHECK ADD 
        CONSTRAINT [PK_表名] PRIMARY KEY  NONCLUSTERED 
         (
              [字段名1],
              [字段名2]
         )
        GO
      

  4.   

    所谓的双主键跟复合主键,不就是统称的联合主键么-----sql script
    create table table(f1 char(1),f2 char(1),primary key(f1,f2)) 
      

  5.   

    晕,MS的东西,基本上差不多吧:
    连续的两列,点第一列,按住Shift,点下一列
    非连续的列,点1列,按Ctrl,点其它列双主键和复合主键是一回事呢
    --------
    双主键就是两个字段复合作为一个主键,并不是两个主键
    复合主键就是两个/多个字段复合作为一个主键
    可以说是一回事。