关于sqlserver 2005 使用临时表的问题( Invalid object name #temptb)_Mssql数据库教程

编辑Tag赚U币

推荐:SQL Server 2005安装实例环境图解
对于大多数的数据库管理员和开发人员来说,安装并配置一个新的SQL Server是激动人心的任务,因为它可以带来全新的挑战和机会

最近在利用 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支持临时表的使用。

分享:sql2005 附加数据库出错(错误号:5123)解决方法
无法为此请求检索数据。(Microsoft.SqlServer.SmoEnum)其他信息执行Transact-Sql语句或批处理时发生了异常,Microsoft.SqlServer.ConnectionInfo)尝试打开或创建物理文件d:\Data\***.mdf时,Create file遇到操作系统错误5(拒绝访问。

来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2013-04-21
相关Mssql数据库教程