MSSQL 2008中,一张表已有一个主键pk_a,现在想将另外一列b,也设置为主键形成双主键,并且主键pk_a被其他表引用了外键,
请问这个时候怎么设置联合主键??
请看源码: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)
);
请问这个时候怎么设置联合主键??
请看源码: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)
);
alter table #t
add constraint 约束名 primary key (字段1,字段2)
而且你的a已经是主键了,联合主键已经没有意义了,a不同,a,b必然不同,这个联合主键完全起不到限制b的作用。如果只是想增加一个唯一的约束,不如直接在b上创建一个unique约束或者直接创建key(不是primary,就是key)。
然后 领一个表值外键a