2012-03-28 87 views
1

直到今天,我已經能夠在不使用[databaseName].[dbo].[fieldName]語法的情況下運行查詢。突然之間,如果我使用select * from myTable,我會收到invalid object的錯誤消息。我不可能想到昨天和今天關閉我的電腦之間發生的事情。有人知道這是什麼一回事嗎?`無效的對象名稱`,除非我在SQL Server 2008查詢中指定數據庫名稱

Msg 208, Level, 16, State 1 Line 1 
Invalid object name 'mytable' 

從今天起我才必須在查詢中包含數據庫名稱。沒有其他連接打開,並且沒有其他用戶使用此SQL Server實例。

+1

後實際的查詢和實際的錯誤你得到,所以我們可以幫助你。 – 2012-03-28 13:10:14

+1

你使用的是databaseName,對吧? – Diego 2012-03-28 13:23:51

回答

5

我想你所指的形式select [fieldName] from [databaseName].[dbo].[mytable]

這裏的查詢是一些可能的事情看出來:

  • 確保您在正確的數據庫上下文/目錄下(即use [databasename],或選擇從Available Databases下拉在SSMS正確的數據庫)

enter image description here

  • 確保如果您的數據庫中包含區分大小寫的排序規則,以便查詢中的對象名稱與精確的大小寫匹配。
  • 檢查您的用戶的默認模式在此數據庫上沒有更改。儘管默認架構通常是[dbo],但它可以更改。

編輯:更多的想法:

  • SELECT DB_NAME()看到當前數據庫的名字是什麼。
  • 檢查是否有人已完全丟棄表格或視圖,例如從目標數據庫,運行:

Select * from sysobjects where name = 'myobject' 
OR 
Select * from sys.tables where name = 'mytable' 
OR 
Select * from INFORMATION_SCHEMA.TABLES 
+0

架構沒有改變,區分大小寫沒有改變。我不確定你對數據庫上下文/目錄究竟意味着什麼。 – wootscootinboogie 2012-03-28 13:15:11

+0

我的筆記本電腦上有一個蹩腳的觸摸板,我使用了錯誤的數據庫。在運行查詢的執行按鈕的左側,它包含SQL Server上的數據庫列表,那是什麼東西?這就是我的問題所在。謝謝 :) – wootscootinboogie 2012-03-28 13:25:54

相關問題