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

Kev*_*Kev 8 .net t-sql sql-server stored-procedures

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

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

在SP结束时,临时表都被彻底删除.

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

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

这是怎么回事?

Bat*_*mer 22

这里所说的答案完美无缺,原因不明.

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

IF 1=0 BEGIN
    SET FMTONLY OFF
END
Run Code Online (Sandbox Code Playgroud)


Tom*_*dee 2

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

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

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

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