我正在尝试在MS sql服务器中创建一个临时表。就像创建表并插入值一样。使用选择查询时,会引发错误。
我的示例代码是
EXEC (
'create table #temp2 (id int)
insert #temp2 values(1)'
)
SELECT *
FROM #temp2
输出为
(受影响的1行)
消息208,级别16,状态0,第8行
无效的对象名称“#temp2”。
答案 0 :(得分:2)
在相同的过程中创建临时表,使其仍然在范围内,然后使用动态SQL对其进行修改。
create table #temp2 (id int)
DECLARE @SQL NVARCHAR(1000) ='ALTER TABLE #temp2 ADD test1 int NOT NULL, test2 int NOT NULL'
EXEC sp_executesql @SQL
insert #temp2 values(1,2,3)
SELECT * FROM #temp2
DROP TABLE #temp2