我正在切換我的Web主機並備份了我的數據庫。由於我的新主機受到一些限制,我無法恢復.bak文件並必須發送給他們,以便他們恢復它。一旦他們恢復了它,我跑我的應用程序獲取此恢復SQL Server 2008數據庫後「無效的對象名稱」
System.Data.SqlClient.SqlException: Invalid object name "<table name>"
每當我試圖從應用程序查詢表。但是,通過使用相同用戶名和密碼的管理工作室登錄並查詢表格,我沒有任何問題。
我運行一個MVC 3網站與SQL Server 2008
有誰知道爲什麼試圖運行我的應用程序時,我可能會得到這些例外?
編輯:
一些詳細信息:
我是用我的舊數據庫的用戶名是Kimpo54321所以我創造了前綴得到這樣Kimpo54321所有表。所以我嘗試將它添加到我的Web應用程序中的第一個查詢中,所以它將是SELECT * FROM Kimpo54321.<tablename>
,並且查詢通過而沒有異常。
現在我不必在每個表名前面加上前綴在我的應用程序中,我不想將它應用於我的所有查詢。有沒有辦法來解決這個問題?
編輯:
我跑這讓爲每個表ALTER架構線,改變了一切dbo
及其最後的工作。日Thnx阿龍指着我在正確的方向找到了答案,
SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + o.Name
FROM sys.Objects o
INNER JOIN sys.Schemas s on o.schema_id = s.schema_id
WHERE s.Name = 'yourschema'
And (o.Type = 'U' Or o.Type = 'P' Or o.Type = 'V')
啊,是的,編輯我的問題,而你的答案發布。這一切都開始有意義了,現在我剛剛右鍵單擊管理工作室選擇top 1000中的表格,實際上它將表格名稱與舊架構(kimpo54321)作爲前綴。我嘗試單擊管理工作室菜單樹中的登錄文件夾,然後單擊試圖在用戶映射中添加kimpo54321模式。我收到一條錯誤消息「無法更改用戶dbo」,當我嘗試添加兩個模式時,什麼都沒有發生,默認模式仍然是dbo。這如何改變? – Kimpo