在临时表的指定字段前面插入字段 问题描述: 使用下面的代码创建一个临时表,怎么样才能在‘长度’字段之前插入一个字段? create table #temp(CODE varchar(50),长度 varchar(50),颜色 varchar(50), 合计 varchar(50)) /*- 一般来说,列位置不重要,处理的时候写列的列表就行了。如果一定要处理,则参考下面的示例-*/ --创建临时表 create table #temp(CODE varchar(50),长度 varchar(50),颜色 varchar(50), 合计 varchar(50)) --添加一列 alter table #temp add 新加字段 varchar(50) go --调整列的位置,把新加字段移动到长度的前面 EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE go update a set colid=case when a.colid=c.colid then b.colid else a.colid+1 end, colorder=case when a.colid=c.colid then b.colid else a.colid+1 end from tempdb.dbo.syscolumns a, (select colid from tempdb.dbo.syscolumns where id=object_id('tempdb.#temp') and name=N'长度') b, (select colid=max(colid) from tempdb.dbo.syscolumns where id=object_id('tempdb.#temp')) c where a.id=object_id('tempdb.#temp') and a.colid>=b.colid go
EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE GO
--显示结果 select * from #temp
--删除临时表 drop table #temp
/*--结果 CODE 新加字段 长度 颜色 合计 ------- ----------- ------- ------- ------- (所影响的行数为 0 行) --*/ 原帖地址
|