需求:
数据库为SQLServer。对已有的数据库表customer加一个序号字段,一次性对所有现存客户加上编号,并在新建客户时自动增加一个编号,数值自增1。
解决方法:
1、 复制表结构。把原有的customer的表结构复制一份,成为customer_bak
语句:SELECT * INTO customer_bak FROM customer WHERE (1 = 2)
PS:where条件为 1=2 即为”false“条件,可以让查询返回任何行。
2、 新表customer_bak与原表所含字段、类型等一致,在新表增加一个序号字段,如number,类型numberic,长度9。
3、 设置number字段属性,达到新增数据自增1的操作。
4、 把原表已存在的数据以插入的方式导入到新表中,语句如下:
insert into customer_bak (
字段1,字段2,字段3…..)
select字段1,字段2,字段3…..
from customer
因为customer_bak是无数据的空表,所以用insertinto复制数据时,会把每一条记录当成新数据插入,即达到numer字段从1开始自增长,无需再为原有数据加编号。
5、删除原有表,把customer_bak改名为customer。即完成更新数据表操作。