Reporting Services 2000中的临时表问题

时间:2009-04-29 14:40:54

标签: sql sql-server report

我刚刚在报表管理器中使用存储过程创建了一个报表,该过程使用临时表。

我收到错误“无法为查询生成字段列表。无效的对象名称'#xxxx'”

我读到这是因为当Report Manager尝试PrepareQuery时,它会遇到困难,因为临时表还不存在,这是正确的吗?如果是,你有任何解决方法吗?

4 个答案:

答案 0 :(得分:3)

我遇到过这一次......实际上完全相同。我在创建任何临时表之前将此行放入我的SP中来修复它:

SET FMTONLY OFF

这应该是它的诀窍。

答案 1 :(得分:0)

唯一的方法是一个明显的方法,让你的临时表永久化,并自己管理它(使用后删除行等)。这可以更快,也可以索引,您可以根据需要添加密钥以确保完整性。它还可以作为长时间运行查询的缓存。

如果您确定只有一个用户调用sp,那么您可以使用truncate而不是delete来从表中转储数据。

没什么帮助,但我从未找到任何其他方法。

答案 2 :(得分:0)

我对报道服务并不是很了解,但这对我来说听起来很准确。

听起来我可能无法使用临时表来存储数据。您可能需要使用永久表。

我会问自己为什么我还要使用单独的桌子。数据是否已存在于其他表中?我可以从那里得到它吗?有时您无法选择使用单独的表格,只需确保。

答案 3 :(得分:0)

我不知道究竟是什么导致了这个问题,但您可以尝试使用变量表。

declare @table table (Field int)