日期:2014-05-16  浏览次数:20489 次

SQL动态新增列位置问题
大家好,就是我在用SQL新建了一个表(见下图),我想在Id (主键) 和CallerNumber之间新增 Name 、Age两列
该怎么写SQL语句在已经建立的表中动态插入新列到指定位置? 表名:tb_contact

------解决方案--------------------
MYSQL里面可以用BEFORE, SQL SERVER里面好像只能在界面进行操作 ,语句是没有的
------解决方案--------------------
alter table tb_contact add Name  varchar(10);
alter table tb_contact add Age int;
------解决方案--------------------
顺序无关紧要,如果你非要这样的顺序,只有两种方法:
1、整表删除并重建。
2、删除新加列后面的其他列,加入新列之后再加入原有的列
------解决方案--------------------
不行

引用:
sql中有没有什么指令可以调节列的排列循序呀,默认新建列是插到最后,能否用指令把他移到指定列?
而且最佳实践中明确指出select应该明确指定列名,这个时候你就可以指定列的顺序
------解决方案--------------------
我想知道你为什么那么在意顺序,另外麻烦引用,这样我可以尽早回复你
------解决方案--------------------
引用:
sql中有没有什么指令可以调节列的排列循序呀,默认新建列是插到最后,能否用指令把他移到指定列?


这个你可以通过界面操作来调整,但是本质上sql server 用来调整这个的操作, 是先删除表,然后再新建表
的。
------解决方案--------------------
T-SQL基于集合论,而集合论中对列名的定义是无序的。不管表中的列是A,B,C,D还是D,A,B,C(前提没有主键等),那么你在SELECT的时候只需要SELECT 特定的列,比如你的界面都只需B,C这两个列并且顺序都这样,那么SELECT B,C from xx即可,只要你的表中有这两列,无论顺序如何,界面展示都是固定的,除非你要用*,不过这个并不是好的习惯