19

我正在通过SELECT INTO. 我想创建临时表,然后向其中添加一列,如下所示:

 SELECT id, name, val
 INTO #TEMP_TBL

 ALTER TABLE #TEMP_TBL ADD new_col AS DECIMAL

 Error: Invalid column name 'DECIMAL'.

我在哪里错了?

4

2 回答 2

37

不要使用AS. 正确的语法是

 ALTER TABLE #TEMP_TBL ADD new_col DECIMAL(18,4) /*Or whatever precision/scale */

或者你可以一次性完成这一切

SELECT id,
       name,
       val,
       CAST(NULL AS DECIMAL(18, 4)) AS new_col
INTO   #TEMP_TBL 
FROM ....

它认为您正在尝试添加计算列。

CREATE TABLE #TEMP_TBL(X INT)

/* Y is a computed column with same value as X*/
ALTER TABLE #TEMP_TBL ADD Y AS X
于 2013-06-18T14:57:45.653 回答
2

尝试以下

ALTER TABLE #TEMP_TBL ADD new_col DECIMAL
于 2013-06-18T14:59:32.730 回答