为数据库里面的一张表写一个新增字段的SQL语句,大家都会,在表的数据量不大的情况下,这个通常没有任何问题。当你表的数据量达到1KW级的时候,问题就出来。
(一) 数据表添加字段的过程
我们来看看数据库里面是内部增加字段的过程。
(1) 创建一张临时表,表的结构和原来的table一致。
(2) 在临时表上增加新增的字段
(3)将原table表里面的数据复制到临时表中,
(4)将原table删除
(5) 将临时表重命名原来的表名称。
(二)实践
我们知道了为大数据表增加一列的时候,会做这么多操作,会产生大量的事务日志,会进行锁表,那我们可以自己来模拟这个过程。
(1) 创建一张临时表,表的结构和原理的table一致。
最简单的做法 ① 右键,脚本,生成create table脚本 ② CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
(2) 在临时表中增加新的字段 alter table article add test nvarchar(20)
(3) 将原来的表赋值给临时表,insert into(xx,xx1,xx2) select xx,xx1,xx2 from table
(4) 删除原来的表。drop table xx
(5) 将临时表,重命名为原来的表。