首页 > sql server新插入一列报错

sql server新插入一列报错

sqlserver数据库想在一列后面新加一列

alter table Factors_copy Add EPIBS DECIMAL(18,5) AFTER ETP5

总是会报错

[Err] 42000 - [SQL Server]'AFTER' 附近有语法错误。

是不是sqlserver不支持这么写呢
急,请问该怎么解决


  1. AFTER这个语法在SQLServer中不支持,在MySQL当中是合法的;

  2. 如果实在要调整字段的顺序,只有通过SQLServer Management Studio来拖动字段的顺序;还有一种方法是重新建立一个新的表,然后将原来表中的数据导入,但是不推荐这样的做法。

  3. 其实字段的顺序并不重要,影响的只是 select * 的查询字段顺序,然而在程序当中基本不会使用select *来执行查询,所以无需纠结这个问题。如果强迫症或者实在要这么做,只能参考第2条做法。


MSSQL不支持这样的语法

  1. 其实每个table的colomn的信息及位置顺序是存储在数据字典INFORMATION_SCHEMA.COLUMNS的,可以尝试去改变数据字典中的信息来达到目的

  2. 增加一个field到特定的位置对于关系型数据库其实并没有太大的意义,如@lv12312所言

  3. 另外一种方法

Select ColumnA, ColumnB, ColumnC Into NewTable from OldTable;
Drop Table OldTable;
EXEC sp_rename 'NewTable', 'OldTable';
【热门文章】
【热门文章】