2012-08-24 202 views
1

通的ASP/ C# .NET頁面運行下面的代碼時,我得到一個錯誤:錯誤「無效的對象名稱INFORMATION_SCHEMA.TABLES」

SELECT 1 FROM [database].INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='example_table' 

的代碼運行完全當我在sql management studio query窗口中運行它。 它也只破1個具體server - 當我運行在不同的server與不同connection string,它工作正常。

我已經搜遍了互聯網,我似乎找到的所有答案都是有區分大小寫的問題,但我使用的都是大寫字母,而且問題表無論如何都使用SQL_Latin1_General_CP1_CI_AS collation

基於這一切,我敢肯定這是某種權限問題,但我不確定在哪裏尋找。

我得到的錯誤:

無效的對象名稱database.INFORMATION_SCHEMA.TABLES「。

連接字符串:

<add name="connectionName" connectionString="Data Source=servername; Initial Catalog=master; User ID=user; Password=pw" providerName="System.Data.SqlClient"/> 

UPDATE:

一些詳細信息:我已經適應從一些舊VB的東西,基本上做同樣的事情的代碼。 VB代碼在相同的服務器和數據庫上運行相同的確切查詢,但它工作正常。

VB代碼:

Dim connStr As String = ConfigurationManager.ConnectionStrings("connectionName").ConnectionString 
Dim objConnection As SqlConnection = New SqlConnection(connStr) 
Dim objCommand As SqlCommand = New SqlCommand("SELECT 1 FROM [database].INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_NAME='example_table'", objConnection) 
objCommand.CommandType = CommandType.Text 

objConnection.Open() 

的C#和VB代碼都使用完全相同的連接字符串從web.config中,所以我想這使我懷疑,這將是一個權限問題。仍然不知道問題是什麼。

+0

你得到的錯誤將是有用的,連接字符串,這種事情 –

+0

我道歉不清楚,錯誤是標題:無效的對象名'database.INFORMATION_SCHEMA.TABLES'。連接字符串是相當標準的,我想, Zimek

+0

does not爲我工作,但我沒有一個數據庫稱爲數據庫... –

回答

0

經過一番更多的調試,我能夠確定代碼實際上運行在錯誤的服務器上。所以,根據我發佈的內容,沒有任何方法可以找到這個bug,但我認爲Tony基於來回的方式走在正確的軌道上。

0

這是你的情況下的複製粘貼問題,我希望用你的數據庫名稱更改[數據庫]。

相關問題