TableAdapter配置向导不喜欢SP中的临时表

时间:2013-06-28 15:57:38

标签: .net sql-server tsql stored-procedures

我有一个存储过程,我在数据集中使用它来在ReportViewer中生成报告。

此SP使用临时表来存储中间值,以便可以在SP末尾的计算中使用这些值。

临时表在SP的末尾都被彻底删除。

我可以在SSMS中执行SP而没有任何问题,它会返回我期望的数据。

但是,当使用TableAdapter配置向导在VS2012中更新我的xsd时,它会给出错误Invalid object name '#Held'(其中#Held是其中一个临时表的名称)。

发生了什么?

2 个答案:

答案 0 :(得分:20)

答案陈述here完美无缺,原因不明。

只需将以下代码放在SP的AS部分之后的存储过程之后。

IF 1=0 BEGIN
    SET FMTONLY OFF
END

答案 1 :(得分:0)

#temp表和表适配器存在一些已知问题。

有些人通过明确选择列名来解决这个问题,例如:

SELECT column1, column2, ... from #temptable而不是SELECT *(如果你这样做的话)

您也可以尝试使用table变量而不是临时表。