我有一个在MSSQL 2005中创建的存储过程,它将数据存储在全局临时表(## Temp)中。当我在MSSQL 2005中使用导出向导功能时,我可以将数据导出到excel文件中。
但是,当我在MSSQL 2008中运行相同的存储过程并尝试使用导出向导将临时表中的数据导出到excel文件时,我收到一个无效的对象名称' ## Temp'错误。
我可以知道为什么会这样,我该如何纠正呢。请告知如何解决。
这是我创建全局临时表
的存储过程的一部分 SET @SQLStrMain = RTRIM(@SQLStrMain_Prefix)
SET @SQLStrMain = @SQLStrMain + ',' + RTRIM(@SQLStrMain_Txn)
SET @SQLStrMain = @SQLStrMain + ',' + RTRIM(@SQLStrMain_Amt)
SET @SQLStrMain = @SQLStrMain + ' INTO ##Temp '
SET @SQLStrMain = @SQLStrMain + ' FROM ( '
SET @SQLStrMain = @SQLStrMain + RTRIM(@SQLStrSub)
SET @SQLStrMain = @SQLStrMain + RTRIM(@SQLStrMain_Postfix)
EXEC (SQLStrMain )
根据MSDN,MSSQL 2008确实支持## Temp命名约定
答案 0 :(得分:0)
使用Radu Gheorghiu的想法,我将## Temp更改为TempTable(没有##),而不是使用命令
Drop Table TempTable
执行SP后删除TempTable。因此,每当我重新运行sp时,我都不会有任何问题。