ASP/ C# .NET
ページを介して次のコードを実行すると、エラーが発生します。
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"/>
アップデート:
いくつかの詳細情報: 基本的に同じことを行ういくつかの古い 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 からのまったく同じ接続文字列を使用しているため、アクセス許可の問題ではないかと疑うようになります。しかし、問題が何であるかはまだわかりません。