使用## TempTable获取错误

时间:2013-11-21 02:29:59

标签: sql sql-server temp-tables openquery

我想在我的sql Server查询中使用##TempTable从oracle db获取值,但总是出错,错误说

##TempTable is Invalid object name '##TempTable '.

这是我使用##TempTable

的代码
SET @sQuery = 'SELECT * INTO ##TempTable 
FROM OPENQUERY(ITCP,''SELECT * FROM DB.WINFO WHERE SCH_DATE = '''''+ 
CONVERT(VARCHAR(10),@DDATE,121) +''''''' ) A' EXEC(@sQuery)

我很困惑,我是否应该声明查询以像平常一样创建像##TempTable这样的创建表,或者通过该查询创建临时表应该自动创建?因为我总是收到错误

1 个答案:

答案 0 :(得分:0)

我认为问题是你的临时表是在一个范围内创建的,而你的动态查询是在另一个范围内执行的。

要尝试的一些事项:

  1. 首先创建## temptable,然后在动态查询中填充它。

  2. 尝试使用tempdb为表名添加前缀..(所以tempdb .. ## temptable)。

  3. 使用持久表(不是临时表)。

  4. 希望这有帮助。