黑马程序员技术交流社区

标题: sql server怎样在表格的指定处插入一新列? [打印本页]

作者: 杨正    时间: 2012-7-11 22:31
标题: sql server怎样在表格的指定处插入一新列?
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:}



作者: 许庭洲    时间: 2012-7-12 10:26
本帖最后由 许庭洲 于 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'
作者: 杨正    时间: 2012-7-16 09:35
许庭洲 发表于 2012-7-12 10:26
1,alter table 表名 add 列名
    类型描述例如alter table table1 add field1 varchar(20);
2,--先建 ...

你说的是上面第三种方法吧,我觉得还是挺麻烦的哦,不过这种思想还是很值得借鉴的。
sql server难道没有更简单的语句吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2