您的位置首页百科知识

SQL插入不完整的信息方法

SQL插入不完整的信息方法

的有关信息介绍如下:

SQL插入不完整的信息方法

SQL在插入记录的时候,通常并不是表中一整行所有字段都填充了值的,这种情况下的插入有可能成功,也有可能失败,就看缺失的信息是什么类型

打开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

);

往测试表tblEmpty中插入测试数据,此时,只插入一个字段值,从结果可以看到,这种字段全可空,无任何约束,主键都没有设置的表,插入不完整的信息是可以成功的:

insert into tblEmpty(Id) values('123');

修改测试表,将ID栏位设置为主键,从执行结果,可以看出,可空的字段是不能作为主键的

alter table tblEmpty add constraint PK_ID primary key (id);

修改测试表,将ID栏位设置为不可空,然后再设置主键,从结果可以看出,执行成功了(按顺序一行一行的执行)

alter table tblEmpty alter column id varchar(40) not null;

alter table tblEmpty add constraint PK_ID primary key (id);

再使用第二步的sql语句,往测试表中插入相同的值,但是仍然只有一个ID列有值,执行结果:失败,因为主键值不能重复

insert into tblEmpty(Id) values('123');

修改第二步的sql语句,插入一个不同的值,试一试呢,执行结果:成功

insert into tblEmpty(Id) values('456');

插入除了ID列的所有字段信息,执行结果:失败,因为主键值不能重复。

insert into tblEmpty(Col1, Col2, Col3, Col4) values('第二列', '第三列', '第四列', '第五列');

总结,同时满足下面条件的不完整信息插入就可以成功,否则,就不行:

1)插入的所有主键列都有值,且不重复

2)插入的所有非空栏位都有值,且不重复

3)插入的所有聚集索引栏位都有值,且不重复