关于sqlserver 2005 使用临时表的问题( Invalid object name #temptb)_mssql2005

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

时间: 2024-11-09 01:54:02

关于sqlserver 2005 使用临时表的问题( Invalid object name #temptb)_mssql2005的相关文章

SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法_mssql2005

ROW_NUMBER() 说明:返回结果集分区内行的序列号,每个分区的第一行从 1 开始.语法:ROW_NUMBER () OVER ( [ <partition_by_clause> ] <order_by_clause> ) .备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序.参数:<partition_by_clause> :将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区.       <o

使用Navicat Premium新建SQLServer 2005数据库、用户及权限赋予

前几天写过一篇<烂泥:利用IIS.Zblog.SQLServer搭建ASP博客>,介绍有关使用SQLServer数据库搭建博客的文章. 在那篇文章中,我们使用的SA用户,也即是使用最高权限的用户,来建立并连接数据库的.这篇文章,我们来使用Navicat Premium这款软件新建SQLServer 2005普通用户,及权限赋予. 首先,我们先来打开Navicat Premium,点击面板上相关的数据库,然后填入相关的信息.如下图: Navicat Premium连接SQLServer进去后,如

SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库)

原文:SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库) 场景 公司最近的sharepoint的数据库服务器老是出问题,并且在一旦出现问题,就导致无法正常工作.最主要的是我们要加班还原以前的数据库,这是最头疼的.于是在网上查找资料,实现主备机的同步,对于sharepoint而言我们只需做到sharepoint的内容数据库同步即可.这种技术有个专业名词叫做双机热备. 双机热备原理 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可

ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署

asp.net|server|sqlserver 由于本人机器上仅安装SQLSERVER2005,而没有装SQLSERVER  EXPRESS,于是在部署user profile时遇到了aspnetdb.mdf无法连接的问题,经过一番折腾,总算解决了,下面把经验写下来与大家分享. 由于没有aspnetdb.mdf数据库,因此得先建立一个,这个可以通过aspnet_regsql.exe完成,该程序位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\下.运

SQLServer 2005安装及界面截图,新增功能

server|sqlserver 如果你先安装Microsoft Visual Studio 2005 Bata1版,然后再安装SQL Server 2005 Bata2版.在安装的时候会提示你删除原来的SQL Server组件.(即使从来没装过SQL Server 也会提示). 其原因是Visual Studio 2005 Bata1版的CLR version是2.0.40607.16 ,SQL Server 2005 Bata2版的CLR version是2.0.40607.42 解决办法:

Sqlserver 2005使用XML一次更新多条记录的方法_mssql2005

我想很多人都知道,在oracle里面,存储过程里面可以传入数组(如int[]),也就是说,可以传多条记录到数据,从而一起更新.减少数据库的请求次数. 但SqlServer呢?bulk Insert这个很多人都知道,我也知道,但可惜,我从来没用过,只有导数据的时候才会考虑,但导数据DTS不是更方便吗? 手头的一个项目,有几个功能,每次需要更新N(N<1000)条记录,记录不多,但如果每次只更新一条,循环insert,那每个功能需要N次请求数据库,如果有1000个并发,那数据库除了做你这个事情,其他

Sqlserver 2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法_mssql2005

最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用Sql Server2005附加数据库文件时弹出错误信息: 看到网友回复说:只需给Authenticated Users赋所有权限就行了. 本人也遇到类似的问题,但是解决方法很简单,只需要使用管理员的身份打开SQL Server Management Studio,即可附加数据库了 如下图:  ,一时无解,遂求助于百度谷歌,经过各种试验,特将解决办法整理于此,希望能帮到大家,同时如果有好的意见大家多多交流啊! 方案一:切换登

sqlserver 2005 无法在服务器上访问指定的路径或文件_mssql2005

刚装的sql server 2005系统,附加数据库是出现如下提示 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA 无法在服务器上访问指定的路径或文件.请确保您具有必需的安全权限且该路径或文件存在. 如果您确定所用服务帐户可以访问特定的文件,请在"定位"对话框的"文件名"控件中键入该文件的完整路径. 接着出现定位数据库文件的框,里面没有盘符,根本选择不了数据库 郁闷了半个下午,记得曾经出现过了这个问题

sqlserver 2005 如何创建分区表

server|sqlserver|创建 该文详细介绍实现分区表的过程以及有助于完成此过程的功能.逻辑流程如下:图:创建分区表或索引的步骤 确定是否应为对象分区 虽然分区可以带来众多的好处,但也增加了实现对象的管理费用和复杂性,这可能是得不偿失的.尤其是,您可能不需要为较小的表或目前满足性能和维护要求的表分区.前面提到的销售方案使用分区减轻了移动行和数据的负担,但在决定是否实现分区时,您应考虑您的方案是否存在这种负担. 确定分区键和分区数 如果您正在尝试改善大型数据子集的性能和可管理性,并且已经定