关于sqlserver 2005 使用临时表的问题( Invalid object name #temptb)
更新时间:2012年07月17日 21:02:50 作者:
最近在利用 SSRS 2005 做报表的时候,调用带有临时表的数据源时,系统会报错,并无法进入向导的下一步,提示There is an error in the query. Invalid object name #temptb
最近在利用 SSRS 2005 做报表的时候,调用带有临时表的数据源时,系统会报错,并无法进入向导的下一步,错误如下:
There is an error in the query. Invalid object name '#temptb'.
经过研究后想到如下三种解决方案:
1. 使用表变量代替临时表,这样做法可以避免SSRS 2005 的语法错误提示,缺点就是如果处理的数据量比较大,会占用过大的内存,并且报表加载时间过长。
2.使用一个不包含临时表的SQL语句创建报表,创建成功以后,修改数据源,替换上包含临时表的SQL命令或者存储过程,这时用SSRS 2005自带的语法检查功能对数据源语法检测也会报错,但是不会影响报表的保存和加载。为了测试在并发调用报表的情况下,临时表内的数据是否会混淆,我做了个测试,将建好的需要运行一段时间才能生成的带有临时表的报表发布到报表服务器,然后同时打开多个网页访问该报表,报表同时加载,但是数据之间仍就保持独立。测试结果说明SSRS 2005在并发条件下调用临时表,与其他程序调用临时表相同,不会影响最后的显示结果。 当然上面提到的临时表指的是本地临时表(以#开头),如果是全局临时表(以##开头),则报表之间将会共享全局临时表中的数据。
3.将报表升级到SSRS 2008, SSRS 2008支持临时表的使用。
There is an error in the query. Invalid object name '#temptb'.
经过研究后想到如下三种解决方案:
1. 使用表变量代替临时表,这样做法可以避免SSRS 2005 的语法错误提示,缺点就是如果处理的数据量比较大,会占用过大的内存,并且报表加载时间过长。
2.使用一个不包含临时表的SQL语句创建报表,创建成功以后,修改数据源,替换上包含临时表的SQL命令或者存储过程,这时用SSRS 2005自带的语法检查功能对数据源语法检测也会报错,但是不会影响报表的保存和加载。为了测试在并发调用报表的情况下,临时表内的数据是否会混淆,我做了个测试,将建好的需要运行一段时间才能生成的带有临时表的报表发布到报表服务器,然后同时打开多个网页访问该报表,报表同时加载,但是数据之间仍就保持独立。测试结果说明SSRS 2005在并发条件下调用临时表,与其他程序调用临时表相同,不会影响最后的显示结果。 当然上面提到的临时表指的是本地临时表(以#开头),如果是全局临时表(以##开头),则报表之间将会共享全局临时表中的数据。
3.将报表升级到SSRS 2008, SSRS 2008支持临时表的使用。
相关文章
sqlserver2005 TSql新功能学习总结(数据类型篇)
sql server2005 TSql新功能学习总结(数据类型篇) ,希望对需要的朋友有所帮助。2010-07-07SQLServer2005 Output子句获取刚插入的ID值
SQLServer2005的Output子句获取刚插入的ID值2009-08-08Sql Server 2005的1433端口打开局域网访问和进行远程连接
在实际项目中,我们经常会遇到需要局域网访问或者需要外网访问甚至是两者都需要的数据库搭建,那么应该如何来处理呢,我们来一一探讨下2014-08-08SQL Server中带有OUTPUT子句的INSERT,DELETE,UPDATE应用
这篇文章介绍了SQL Server中带有OUTPUT子句的INSERT,DELETE,UPDATE应用,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06
最新评论