sql server 主键约束不生效

图片说明图片说明
设置了联合主键约束,但是实际不但可以重复,还可以为空,是我的约束失效了么?

建错了吧。联合主键不能为空的

先删除主键约束,主键约束名可以在图形化中表下的键或约束中看到
alter table table1
drop pk_主键约束名
然后在添加联合主键
alter table table1
#add constraint pk_table1_a_b primary key (a,b)

主键的作用就是确认唯一性呢,把主键删掉之后是可以插入相同数据,可是此时在设置主键生效,发现有相同的数据,是没法设置的,所以肯定不行的。如果就没有主键冲突,那随时可以删除主键,添加主键(如果主键有外键关联的情况下,也不一定能够删除成功的)。

http://www.cnblogs.com/Impulse/articles/5175883.html PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。主键

先删除主键约束,主键约束名可以在图形化中表下的键或约束中看到
alter table table1
drop pk_主键约束名
然后在添加联合主键
alter table table1
#add constraint pk_table1_a_b primary key (a,b)

先删除主键约束,主键约束名可以在图形化中表下的键或约束中看到

联合主键得两个列的值完全相同才不可以,你这个根本就不用联合主键,那个序列键就可以作为主键

你这个显示是空白,但实际上不是NULL吧?
主键看起来是对的,不应该为NULL,但里面说不定是个空格。。。再仔细检查清楚吧

楼上说的对,null 会直接显示null 你这个空字符串, 至于你的联合主键没管用应该是创建失败了吧,或者没保存?

先删除主键约束,主键约束名可以在图形化中表下的键或约束中看到。
再添加联合主键

你可能主键位置没有选好,或者主键设置了好几个