ALTER TABLE my_table ADD COLUMN column_name VARCHAR(50)在SQL Server 2000中不支持col_name

Bra*_*ser 5 sql sql-server alter-table

我在SQL Server 2000中尝试了以下查询,以便我可以在提到的列之后添加新列.

alter table abc ADD dad varchar(50) after parentname
Run Code Online (Sandbox Code Playgroud)

但它会抛出以下错误消息

消息170,级别15,状态1,行1
第1行:'之后'附近的语法不正确.

有没有办法在SQL Server 2000中执行此操作?

pin*_*ave 9

在SQL Server中没有这样的语法.

只是用

ALTER TABLE abc ADD dad varchar(50)
Run Code Online (Sandbox Code Playgroud)

  • 不需要列的顺序.如果你想把表放在特定的顺序 - 你将不得不使用SQL Server Management Studio,它将重新创建完整的表(根本不是一个好主意)或者你只需​​要在T-SQL中做同样的事情您将创建一个包含所需列的新表,然后从旧表中迁移值并删除旧表(这很复杂,因为它需要您处理所有关系). (2认同)

Gre*_*ker 7

简短的回答:表中没有订单.

表是一组记录(无序集合),每个记录都是一组字段.这就是为什么RDBMS理论更喜欢单词"record"和"field"而不是"row"和"column".

如果查看一页数据(例如,通过在MSSQL中使用DBCC PAGE),您将看到字段的存储顺序与您在CREATE TABLE语句中指定的顺序不对应.

订单由SELECT语句强加.

我的建议是停止在CREATE TABLE的整洁性上花费精力和时间,而是将它花在SELECT语句上.