我最近做了一個從sql server 2000數據庫到sql server 2005數據庫的數據庫導入。我已經完成並設置了我以前在舊數據庫中設置的相同登錄憑證和所有者權限。找不到存儲過程錯誤
我正在使用的所有代碼庫都存儲了僅通過存儲過程名稱列出的過程。
爲了確保創建了正確的登錄名,我使用我的應用程序正在使用的連接信息(即使用用戶名「licensemgr」及其相關密碼)登錄到SQL Server Management Studio。當我使用組合登錄時,我可以看到數據庫中的所有表格,存儲過程等。當我嘗試運行存儲過程時,Sql Server Management Studio使用以下語法來執行它:
EXEC: @return_value = [licensemgr].[Stored_Procedure_Name]
並且它執行時沒有錯誤。
如果我嘗試刪除[licensemgr]。從[Stored_Procedure_Name]之前,但是我收到錯誤「無法找到存儲過程:Stored_Procedure_Name」。這與我的應用程序從這個數據庫運行時得到的錯誤是一樣的。我在我的應用程序中更改了一個存儲過程調用以獲得「licensemgr」。在存儲過程名稱前面,似乎可以解決問題,但是,我不想爲我的應用程序中的每個存儲過程調用執行此操作。因此,我想知道我的SQL Server實例中可能缺少什麼類型的安裝程序/權限類型問題,以至於即使當我以licensemgr身份登錄到數據庫時,我也看不到架構「licensemgr」中的存儲過程。
所以只是爲了澄清,你說(如果我正確地讀了文章,文章是這樣說的),在SQL Server 2005中,你必須爲每個存儲過程指定模式名稱,因爲所有權與模式名稱是分離的? 我不介意修改我的所有代碼,如果這是事情需要的方式,我只是想確保我正確地理解你。 – Kivus 2009-08-13 21:58:37