我仍然在SQL Server中找到自己的脚,我正在尝试添加一个简单的列,并且它会抛出错误。我正在尝试在KinAdr3
列之后添加KinAdr2
列,但它会抛出以下错误
Msg 102,Level 15,State 1,Line 5
“AFTER”附近的语法不正确。
以下是我尝试执行的SQL语句
ALTER TABLE TBL_MEDICAL_Patient
ADD KinAdr3 nVARCHAR(50)
AFTER KinAdr2
提前致谢
答案 0 :(得分:4)
原因很简单,因为上述语法在MySQL中有效但在SQL Server中无效。在SQL Server中,以下语法有效:
ALTER TABLE tablename ADD columnname INT
但是,用户希望在两列之间添加列。 SQL Server是关系引擎。在任何T-SQL操作中,列的顺序都无关紧要。在大多数情况下并不重要(除非表格特别大,并且它有许多NULL
列,它会影响表的大小)。实际上,只要用户想要向表中添加列,他/她就应该只使用列,然后使用列名以表中的特定顺序检索列。
在T-SQL查询中指定列的名称总是一个好主意(使用*
确实是一个坏主意,但这超出了本博文的范围。)
有关详细信息,请参阅SQL SERVER – How to Add Column at Specific Location in Table