使用After子句添加Computed列

时间:2015-06-19 11:29:13

标签: sql sql-server-2008

我正在尝试在指定的列之后创建一个计算列。

但SQL为下面的查询提供了语法错误。请帮助我正确的语法/方式来做到这一点。

ALTER TABLE service_ServiceClass 
  ADD LichenClassName AS ([dbo].[UfnGetServiceClassName]([Id])) AFTER Description 

2 个答案:

答案 0 :(得分:3)

您收到错误,因为“AFTER”是MySQL语法。 目前没有直接改变SQL Server中列顺序的方法。

在MS SQL Server Management Studio中,您必须使用SSMS表设计器(右键单击yourTable-> Design)来排列列,然后可以生成一个删除并重新创建表的脚本。

答案 1 :(得分:2)

sql server的alter table语句中没有after子句。 从用户的角度来看,表中列的顺序(以及行的顺序,btw)是完全无关紧要的。 从服务器的角度来看,这很重要,因为它可能会影响使用聚簇索引时的性能。

列的顺序唯一重要的时间是您使用select * ...时,但无论如何都不应该使用它。始终直接指定列名称。