【发布时间】:2015-02-05 01:06:22
【问题描述】:
我在这个存储过程的开头创建了一个临时表。创建成功,可以选择插入。
这里是创建语句
CREATE TABLE #tmpImportData (GuideFirstName VARCHAR(MAX), GuideLastName VARCHAR(MAX),
email VARCHAR(MAX), group_id_text VARCHAR(MAX), CandidateName VARCHAR(MAX),
grade_text VARCHAR(5), dateofbirth DATE
)
我的问题是在更改临时表后尝试更新列。我收到错误
消息 207,级别 16,状态 1
无效的列名
代码:
declare @SQl1 nvarchar(max)
set @SQL1 ='
ALTER TABLE #tmpImportData
ADD group_id INT
ALTER TABLE #tmpImportData
ADD guide_id INT
ALTER TABLE #tmpImportData
ADD password_plain_text VARCHAR(500)
ALTER TABLE #tmpImportData
ADD guide_email VARCHAR(500)
ALTER TABLE #tmpImportData
ADD class_id INT'
exec sp_executesql @Sql1
UPDATE #tmpImportData
SET group_id = CAST(group_id_text AS INT)
UPDATE #tmpImportData
SET group_id = 0 WHERE group_id IS NULL
【问题讨论】:
-
这个“group_id_text”是从哪里来的??
-
向我们展示
#tmpImportData表定义(创建语句)。我猜你还没有定义这样的列 -.group_id_text -
@PareshJv 我已经添加了 create 语句
-
@gotqn 我已经添加了create语句
-
@CodeFlava 我正在执行您的代码,
SQL Server Management Studio 2012中没有错误。你的SQL是什么版本?
标签: sql-server tsql sql-update ddl alter-table