无法使用动态查询创建临时表

时间:2019-06-18 12:25:03

标签: sql-server dynamic-sql

我正在尝试在MS sql服务器中创建一个临时表。就像创建表并插入值一样。使用选择查询时,会引发错误。

我的示例代码是

EXEC (
        'create table #temp2 (id int)
         insert #temp2 values(1)'
        )

SELECT *
FROM #temp2

输出为

  

(受影响的1行)
  消息208,级别16,状态0,第8行
  无效的对象名称“#temp2”。

1 个答案:

答案 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