2015-10-19 94 views
-1

我仍然在SQL Server中發現我的腳,並且我正在嘗試做一個簡單的列添加並且引發錯誤。我想在KinAdr2柱後添加KinAdr3列,但它拋出以下錯誤SQL Server:添加列錯誤

消息102,級別15,狀態1,行5
附近有語法錯誤「後」。

下面是SQL語句我想提前執行

ALTER TABLE TBL_MEDICAL_Patient 
ADD KinAdr3 nVARCHAR(50) 
AFTER KinAdr2 

感謝

+0

[這可能有助於](http://dba.stackexchange.com/questions/19536/add-a-new-column-and-define-its-position-在-A-表)。 –

+1

您不需要「AFTER」子句。修改表格時,不能在特定位置添加列(*,不容易*)。 –

+0

錯誤說明正確 - 沒有「之後'在'alter table'中。您只能將其添加到末尾 –

回答

4

原因很簡單,因爲上面的語法是有效的MySQL,但不是在SQL Server中有效。在SQL Server中,以下語法有效:

ALTER TABLE tablename ADD columnname INT 

但是,用戶想要在兩列之間添加列。 SQL Server是關係引擎。在任何T-SQL操作中,列的順序都不重要。在大多數情況下,這並不重要(除非表格特別大,並且它有許多列會影響表格的大小)。實際上,當用戶想要向表中添加一列時,他/她應該只是列,然後使用列名以表中特定順序檢索列。

在T-SQL查詢中指定列的名稱總是一個好主意(使用*確實是一個壞主意,但超出了本博文的範圍)。

欲瞭解更多詳細信息,請參閱SQL SERVER – How to Add Column at Specific Location in Table