在a表中有字段b类型未知(因为涉及到数据库接口编程,我不能去数据库中看它的字段类型)。该表中没有字段c,现在我想将b字段的所有数据复制到c字段,请问我该怎么做。(我已经知道通过系统表获取数据类型的方法,也知道创建一个同一类型的字段c再update即可实现,但当一个表中字段类型太多,那复制字段就很费时间,我想请教一种更为简便的方法。实际上,我要做的是为字段更名,我知道可以使用存储过程实现,但是存储过程要修改系统表,有一定的危险,我在网上查到一种思路:复制这个字段数据到新的更名后字段中再删除原字段。现在我想知道如何复制数据到新的字段。如果用select into 会连同字段名一起复制,请各位高手告诉小弟究竟如何实现同表复制新字段。)
EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'
if object_id('tb') is not null drop table tb
go
create table tb(a varchar(10),b varchar(10))
insert tb select '张三','A01'
union all select '张二','A02'
union all select '张一','A04'
union all select '张四','A01'
go
alter table tb add c sql_variantupdate tb set c=bselect * from tb
/*
a b c
------- ------- --------
张三 A01 A01
张二 A02 A02
张一 A04 A04
张四 A01 A01(4 行受影响)
*/
alter table tablename drop column id
exec sp_rename 'tablename.id1','id'
那个update就是复制b列到c列
不想修改syscolumns 表,那就保存原来的列,添加一个新的列,列的内容指向原来的列(类似计算列)alter table tb
add 列C as rtrim(列B)
select *, column1 into tableB from tableA
要得到字段类型 查询一下syscolumns表就可以了