为了账号安全,请及时绑定邮箱和手机立即绑定

sql server新插入一列报错

sql server新插入一列报错

跃然一笑 2018-09-04 17:09:06
sqlserver数据库想在一列后面新加一列alter table Factors_copy Add EPIBS DECIMAL(18,5) AFTER ETP5总是会报错[Err] 42000 - [SQL Server]'AFTER' 附近有语法错误。是不是sqlserver不支持这么写呢急,请问该怎么解决
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

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';


查看完整回答
反对 回复 2018-09-14
?
慕标5832272

TA贡献1966条经验 获得超4个赞

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

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

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


查看完整回答
反对 回复 2018-09-14
  • 2 回答
  • 0 关注
  • 992 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信