问题描述: 使用下面的代码创建一个临时表,怎么样才能在长度字段之前插入一个字段? create table #temp(CODE varchar(50),长度 varchar(50" name="description" />

在临时表的指定字段前面插入字段

发表于:2007-06-07来源:作者:点击数: 标签:
在临时表的指定字段前面插入字段 MI LY: quot; BACKGROUND-COLOR: #fafafa; Verdana: ; quot: ; Courier: ; mono: ">问题描述: 使用下面的代码创建一个临时表,怎么样才能在长度字段之前插入一个字段? create table #temp(CODE varchar(50),长度 varchar(50

在临时表的指定字段前面插入字段

MILY: " BACKGROUND-COLOR: #fafafa; Verdana: ; quot: ; Courier: ; mono: ">问题描述:
    使用下面的代码创建一个临时表,怎么样才能在‘长度’字段之前插入一个字段?
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 行)
--*/

原帖地址


原文转自:http://www.ltesting.net