在SQL Server中的其他两个列之间添加列

Phi*_*own 6 sql-server alter-table

您可以在表中添加一列,将其插入SQL Server中两个现有列之间,而无需删除并重新创建表吗?

AHi*_*ins 8

中度回答很长,可以(是),但是很难看,您可能不想这样做。

请注意:此代码创建一个物理表

CREATE TABLE MyTest (a int, b int, d int, e int)

INSERT INTO MyTest (a,b,d,e) VALUES(1,2,4,5)

SELECT * FROM MyTest

ALTER TABLE MyTest ADD c int
ALTER TABLE MyTest ADD d_new int
ALTER TABLE MyTest ADD e_new int

UPDATE MyTest SET d_new = d, e_new = e

ALTER TABLE MyTest DROP COLUMN d
ALTER TABLE MyTest DROP COLUMN e

EXEC SP_RENAME 'MyTest.d_new', 'd';
EXEC SP_RENAME 'MyTest.e_new', 'e';

SELECT * FROM MyTest 

DROP TABLE MyTest
Run Code Online (Sandbox Code Playgroud)


Joe*_*lli 6

简单回答是不。列顺序对您很重要吗?

  • 不是真的,我正在学习一个要求我这样做的教程。我没有打扰,因为它在功能上毫无用处,它只是激起了我的兴趣。 (2认同)

小智 6

是的,您可以在此处添加您关心的查询:

ALTER table table_name ADD column column_name(new) datatype AFTER column_name
Run Code Online (Sandbox Code Playgroud)

  • 你的答案是MySQL。他们询问有关 SQL Server 的问题。 (13认同)