sql - 将列添加到临时表-'无效的列名DECIMAL'

标签 sql sql-server-2008 tsql

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

 SELECT id, name, val
 INTO #TEMP_TBL

 ALTER TABLE #TEMP_TBL ADD new_col AS DECIMAL

 Error: Invalid column name 'DECIMAL'.


我在哪里错了?

最佳答案

不要使用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

关于sql - 将列添加到临时表-'无效的列名DECIMAL',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17172175/

相关文章:

SQL Server 2012审计报告生成

sql - current_date()+1 返回无效日期

php - 在 Windows 上使用 PHP 时,(1) SQL Server 的 native 驱动程序或 (2) PDO 驱动程序哪个更好?

sql-server-2008 - 帮助解释跟踪以查找 sql server 死锁

sql - 定期删除 SQL 中的行

sql-server - 提取上周五日期

SQL Server 2008 排序规则冲突 - 如何解决?

php - 从数据库中取出一条记录到选择列表

sql - 我在 Notepad++ 中可以看到的最大记录数是多少?

sql - 选择某年/月内记录存在的天数