请教Alter表的问题

随风来去 2004-04-14 09:15:47
我想在一个表的某个字段后加入一个新的字段
但是查看SQLServer的帮助发下似乎没有
Alter tablename ADD new_column。。。 AFTER other_colummn
的用法,请教各位,这个操作该如何做呢?
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
随风来去 2004-04-14
  • 打赏
  • 举报
回复
试试看
zjcxc 元老 2004-04-14
  • 打赏
  • 举报
回复
--改一下:

exec sp_configure 'allow updates',1 reconfigure with override
go

alter table 表 add id int --添加字段
go

--处理字段位置
declare @colid int
select @colid=colid from syscolumns
where id=object_id('你要修改的表名') and name='字段名' --在该字段后插入

if @colid is null set @colid=1
update syscolumns set colid=colid+1
where id=object_id('你要修改的表名') and colid>@colid

update syscolumns set colid=@colid+1
where id=object_id('你要修改的表名') and colid=(
select max(colid) from syscolumns
where id=object_id('你要修改的表名'))
go
exec sp_configure 'allow updates',0 reconfigure with override

zjcxc 元老 2004-04-14
  • 打赏
  • 举报
回复
exec sp_configure 'allow updates',1 reconfigure with override
go

alter table 表 add id int --添加字段
go

--处理字段位置
declare @colid int
select @colid=colid from syscolumns
where id=object_id('你要修改的表名') and name='字段名' --在该字段后插入

if @colid is null set @colid=1
update syscolumns set colid=colid+1
where id=object_id('你要修改的表名') and colid>@colid

update syscolumns set colid=@colid
where id=object_id('你要修改的表名') and colid=(
select max(colid) from syscolumns
where id=object_id('你要修改的表名'))
go
exec sp_configure 'allow updates',0 reconfigure with override

随风来去 2004-04-14
  • 打赏
  • 举报
回复
太麻烦了吧
welyngj 2004-04-14
  • 打赏
  • 举报
回复
重建表了。
随风来去 2004-04-14
  • 打赏
  • 举报
回复
这样是可以的,不过太复杂了,最后我还是将字段加到了最后

现在还想问问,我在添加字段的时候,使用了
ALTER TABLE test ADD DELAY INTEGER DEFAULT 0
这样的语法,向同时加入缺省值,但是执行完后发现添加的列内在值都是NULL,而不是零,难道还要Update一次么?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧