1、打开Sql Server Management Studio客户端,连接上数据库,使用如下脚本创建一张数据库漉胜衲仰表tblEmpty(字段全可空,且无主键) CREATE TABLE tblEmpty( Id varchar(40) NULL, Col1 varchar(50) NULL, Col2 varchar(50) NULL, Col3 varchar(50) NULL, Col4 varchar(50) NULL );
2、往测试表tblEmpty中插入测试数据,此时,只插入一个字段值,从结果可以看到,这种字段全可空,无任何约束,主键都没有设置的表,插入不完整的信息是可以成功的: insert into tblEmpty(Id) values('123');
3、修改测试表,将ID栏位设置为主键,从执行结果,可以看出,可空的字段是不能作为主键的 alter table tblEmpty add constraint PK_ID primary key (id);
4、修改测试表,将ID栏位设置为不可空,然后再设置主键,从结果可以看出,执行成功了(按顺序一行一行的执行) alter table tblEmpty alter 艘早祓胂column id varchar(40) not null; alter table tblEmpty add constraint PK_ID primary key (id);
5、再使用第二步的sql语句,往测试表中插入相同的值,但是仍然只有一个ID列有值,执行结果:失败,因为主键值不能重复 insert into tblEmpty(Id) values('123');
6、修改第二步的sql语句,插入一个不同的值,试一试呢,执行结果:成功 insert into tblEmpty(Id) values('456');
7、插入除了ID列的所有字段信息,执行结果:失败,因为主键值不能重复。 insert into tblEmpty(Col1, Col2, Col3, C泠贾高框ol4) values('第二列', '第三列', '第四列', '第五列');
8、总结,同时满足下面条件的不完整信息插入就可以成功,否则,就不行: 1)插入的所有主键列都有值,且不重复 2)插入的所有非空栏位都有值,且不重复 3)插入的所有聚集索引栏位都有值,且不重复