11

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

该 SP 使用临时表来存储中间值,以便在 SP 结束时在计算中使用这些值。

临时表都在 SP 结束时被干净地删除。

我可以毫无问题地在 SSMS 中执行 SP,它会返回我期望的数据。

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

这是怎么回事?

4

2 回答 2

25

由于未知原因,此处所述的答案非常有效。

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

IF 1=0 BEGIN
    SET FMTONLY OFF
END
于 2014-04-08T22:00:17.697 回答
0

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

有些人通过明确选择列名来解决它,例如:

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

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

于 2013-06-28T16:00:33.997 回答