首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

表中联合主键的有关问题

2012-09-18 
表中联合主键的问题MSSQL 2008中,一张表已有一个主键pk_a,现在想将另外一列b,也设置为主键形成双主键,并且

表中联合主键的问题
MSSQL 2008中,一张表已有一个主键pk_a,现在想将另外一列b,也设置为主键形成双主键,并且主键pk_a被其他表引用了外键,
请问这个时候怎么设置联合主键??
请看源码:

SQL code
CREATE TABLE test1(a VARCHAR(20) NOT NULL , b VARCHAR(20) NULL, c VARCHAR(20) NULL, CONSTRAINT pk_a PRIMARY KEY (a));CREATE TABLE test2( a VARCHAR(20) NOT NULL ,  t1 INT NULL ,  t2 VARCHAR(20),  CONSTRAINT fk_a FOREIGN KEY (a) REFERENCES test1(a));


[解决办法]
SQL code
alter table #tadd constraint 约束名 primary key (字段1,字段2)
[解决办法]
你说的是候选键吧。一个表只能一个主键。
你在b列加一个唯一约束就可以了。
[解决办法]
你是要把主键a 改成联合主键 ab?
然后 领一个表值外键a
[解决办法]
探讨

引用:

为什么要设置成主键?建立个联合的唯一约束就可以了吧。
而且你的a已经是主键了,联合主键已经没有意义了,a不同,a,b必然不同,这个联合主键完全起不到限制b的作用。如果只是想增加一个唯一的约束,不如直接在b上创建一个unique约束或者直接创建key(不是primary,就是key)。

因为我要从其他表导入数据到这个表中,但另外在表test3中a,b两列设置……

[解决办法]
删除主键,再重新创建复合主键。。。
[解决办法]
探讨

引用:

引用:

引用:

为什么要设置成主键?建立个联合的唯一约束就可以了吧。
而且你的a已经是主键了,联合主键已经没有意义了,a不同,a,b必然不同,这个联合主键完全起不到限制b的作用。如果只是想增加一个唯一的约束,不如直接在b上创建一个unique约束或者直接创建key(不是primary,就是key)。

因为我要……

热点排行