關(guān)于sqlserver 2005 使用臨時表的問題( Invalid object name #temptb)_Mssql數(shù)據(jù)庫教程

      編輯Tag賺U幣

      推薦:SQL Server 2005安裝實例環(huán)境圖解
      對于大多數(shù)的數(shù)據(jù)庫管理員和開發(fā)人員來說,安裝并配置一個新的SQL Server是激動人心的任務(wù),因為它可以帶來全新的挑戰(zhàn)和機會

      最近在利用 SSRS 2005 做報表的時候,調(diào)用帶有臨時表的數(shù)據(jù)源時,系統(tǒng)會報錯,并無法進入向?qū)У南乱徊剑e誤如下:
      There is an error in the query. Invalid object name '#temptb'.

      經(jīng)過研究后想到如下三種解決方案:

      1. 使用表變量代替臨時表,這樣做法可以避免SSRS 2005 的語法錯誤提示,缺點就是如果處理的數(shù)據(jù)量比較大,會占用過大的內(nèi)存,并且報表加載時間過長。

      2.使用一個不包含臨時表的SQL語句創(chuàng)建報表,創(chuàng)建成功以后,修改數(shù)據(jù)源,替換上包含臨時表的SQL命令或者存儲過程,這時用SSRS 2005自帶的語法檢查功能對數(shù)據(jù)源語法檢測也會報錯,但是不會影響報表的保存和加載。為了測試在并發(fā)調(diào)用報表的情況下,臨時表內(nèi)的數(shù)據(jù)是否會混淆,我做了個測試,將建好的需要運行一段時間才能生成的帶有臨時表的報表發(fā)布到報表服務(wù)器,然后同時打開多個網(wǎng)頁訪問該報表,報表同時加載,但是數(shù)據(jù)之間仍就保持獨立。測試結(jié)果說明SSRS 2005在并發(fā)條件下調(diào)用臨時表,與其他程序調(diào)用臨時表相同,不會影響最后的顯示結(jié)果。 當然上面提到的臨時表指的是本地臨時表(以#開頭),如果是全局臨時表(以##開頭),則報表之間將會共享全局臨時表中的數(shù)據(jù)。

      3.將報表升級到SSRS 2008, SSRS 2008支持臨時表的使用。

      分享:sql2005 附加數(shù)據(jù)庫出錯(錯誤號:5123)解決方法
      無法為此請求檢索數(shù)據(jù)。(Microsoft.SqlServer.SmoEnum)其他信息執(zhí)行Transact-Sql語句或批處理時發(fā)生了異常,Microsoft.SqlServer.ConnectionInfo)嘗試打開或創(chuàng)建物理文件d:\Data\***.mdf時,Create file遇到操作系統(tǒng)錯誤5(拒絕訪問。

      來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2013-04-21
      相關(guān)Mssql數(shù)據(jù)庫教程