A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

sql server怎样在表格的指定处插入一新列?“ALTER TABLE table_name ADD column_name datatype”语句只能添加在最后面。
我尝试了几种方法:
1、在图形化界面下操作很简单,轻而易举搞定。但是在sql server脚本语句中怎样实现呢。
2、用 update syscolumns set colid.... ,修改syscolumns表中各的列号,让它们的列号+1,然后把新加入的该列的列号设置为1。
    但这种方法有不少网友说不安全,因为已经涉及到改系统表了,而且也不简单。
3、创建一个新表Temp_test,把旧表test的数据全部插入到新表中,然后删除test,把Temp_test改名为test。但我觉得这种方法还是不够简单。
方法征集中......{:soso__8961432591078930798_3:}


评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 许庭洲 于 2012-7-12 10:27 编辑

1,alter table 表名 add 列名
    类型描述例如alter table table1 add field1 varchar(20);
2,--先建一个新表
CREATE TABLE dbo.Class_Stu
(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    NAME VARCHAR(60),
    address varchar(255),
    age INT,
    class int
)
--将原表数据插入新表
INSERT INTO dbo.Class_Stu (id, name, age, class)
    SELECT id, name, age, class FROM dbo.Stu
--删除原表
DROP TABLE dbo.Stu
--重命名新表
EXECUTE sp_rename N'dbo.Class_Stu', N'Stu', 'OBJECT'

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
许庭洲 发表于 2012-7-12 10:26
1,alter table 表名 add 列名
    类型描述例如alter table table1 add field1 varchar(20);
2,--先建 ...

你说的是上面第三种方法吧,我觉得还是挺麻烦的哦,不过这种思想还是很值得借鉴的。
sql server难道没有更简单的语句吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马