我正在尝试在指定的列之后创建一个计算列。
但SQL为下面的查询提供了语法错误。请帮助我正确的语法/方式来做到这一点。
ALTER TABLE service_ServiceClass
ADD LichenClassName AS ([dbo].[UfnGetServiceClassName]([Id])) AFTER Description
答案 0 :(得分:3)
您收到错误,因为“AFTER”是MySQL语法。 目前没有直接改变SQL Server中列顺序的方法。
在MS SQL Server Management Studio中,您必须使用SSMS表设计器(右键单击yourTable-> Design)来排列列,然后可以生成一个删除并重新创建表的脚本。
答案 1 :(得分:2)
sql server的alter table
语句中没有after
子句。
从用户的角度来看,表中列的顺序(以及行的顺序,btw)是完全无关紧要的。
从服务器的角度来看,这很重要,因为它可能会影响使用聚簇索引时的性能。
列的顺序唯一重要的时间是您使用select * ...
时,但无论如何都不应该使用它。始终直接指定列名称。