1、PRIMARY KEY 约束
表中经常有一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。索引键主要为了加快查询的速度
2、在企业管理器中,右击表,所有任务中选管理索引,建立即可。
3、通过一列或多列与主表关联

解决方案 »

  1.   

    Create database cat
    go
    use cat
    go
    CREATE TABLE s(s# int not null primary key,s_name varchar(8) not null)
    go
    CREATE TABLE c (c# int not null primary key,c_name varchar(8) not null)
    go
    CREATE TABLE cs(c# int not null,s# int not null,cj tinyint not null default(0),
    primary key (c#,s#),foreign key(s#) references s(s#),foreign key(c#) references c(c#))
    go
    insert s values(1,'saa')
    insert c values(1,'caa')--这句是对的
    insert cs values(1,1,86)--这句是错的,sql会报错,应为s表的s#列里没有2
    insert cs vlaues(2,1,45)
      

  2.   

    级联比如
    create table 主表
    (商品编号 varchar(20) not null  PRIMARY KEY CLUSTERED ,
    商品名称 varchar(20) UNIQUE NONCLUSTERED ,
    数量 int
    )
    create table 次表 
    (商品编号 varchar(20) not null  PRIMARY KEY CLUSTERED REFERENCES 主表 (编号)  ON DELETE  CASCADE  ON UPDATE CASCADE ,
    供应商 varchar(20) 
    )删除主表的商品编号,次表的相应记录也会删除
    级联reference两个表可以的
    examplecreate table 主表1
    (商品编号 varchar(20) not null PRIMARY KEY CLUSTERED ,
    商品名称 varchar(20) UNIQUE NONCLUSTERED ,
    数量 int
    )
    create table 主表1
    (商品编号 varchar(20) not null PRIMARY KEY CLUSTERED ,
    商品名称 varchar(20) UNIQUE NONCLUSTERED ,
    数量 int
    )
    create table 次表 
    (商品编号 varchar(20) not null , 
    商品名称 varchar(20) not null
    primary key ( 商品编号,商品名称 )
    FOREIGN KEY (商品编号) REFERENCES 主表 (商品编号) 
    ON DELETE CASCADE ON UPDATE CASCADE ,
    FOREIGN KEY ( 商品名称) rEFERENCES 主表1 (商品编号) 
    ON DELETE CASCADE ON UPDATE CASCADE ,
    供应商 varchar(20) 
    )insert 主表 select '003','aa',77insert 主表1 select '104','bb',17insert 次表 select '003','104','y'update 主表1 set 商品编号='105'update 主表 set 商品编号='004'
    select * from 次表