[解決済み] SQL Server は「無効なカラム名」を報告するが、カラムは存在し、マネジメントスタジオでクエリが機能する
質問
ちょっとした行き詰まりを感じています。私はあるクエリを持っていて、それはいくつかの
C#
コードによって生成されるクエリを持っています。このクエリは
Microsoft SQL Server Management Studio
で、同じデータベースに対して実行した場合、正常に動作します。
しかし、私のコードが同じクエリを実行しようとすると、無効なカラムに関する同じエラーが表示され、例外がスローされます。この列を参照するすべてのクエリは失敗しています。
問題の列は、最近データベースに追加されました。という日付カラムです。
Incident_Begin_Time_ts
.
失敗する例としては
select * from PerfDiag
where Incident_Begin_Time_ts > '2010-01-01 00:00:00';
その他のクエリとして
Select MAX(Incident_Being_Time_ts);
のような他のクエリも、コードで実行するとカラムがないと判断して失敗します。
何かアイデアはありますか?
どのように解決するのですか?
同じ名前のテーブルが2つあるのではないでしょうか。1 つはスキーマ 'dbo' によって所有されています (
dbo.PerfDiag
) で、もうひとつは SQL Server への接続に使用されたアカウントのデフォルトスキーマによって所有されています (たとえば
userid.PerfDiag
).
スキーマオブジェクト(テーブルなど)に対する非限定的な参照(スキーマ名で修飾されていないもの)がある場合、そのオブジェクトの参照は解決されなければなりません。名前の解決は、指定された名前を持つ適切な型(テーブル)のオブジェクトを次の順序で検索することで行われます。名前は最初に一致したものに解決されます。
- ユーザーのデフォルト スキーマの下。
- スキーマ'dbo'の下。
非限定参照は、上記のシーケンスで最初のマッチにバインドされています。
一般的な推奨事項として 常に を推奨します。
-
なぜなら、参照がバインドされているスキーマは、ストアドプロシージャまたはクエリを実行する認証情報によって変更される可能性があるからです。この結果、クエリやストアドプロシージャが再コンパイルされ、パフォーマンスが低下します。再コンパイルにより、コンパイルロックが取り出され、他の人が必要なリソースにアクセスするのをブロックすることになります。
-
名前解決は、オブジェクトの可能性の高いバージョン('dbo'が所有するもの)に解決するために2つのプローブがなされなければならないので、クエリの実行を遅くします。これは通常の場合です。1 つのプローブで名前が解決されるのは、現在のユーザーが指定された名前と型のオブジェクトを所有している場合のみです。
[さらに注意するために編集]。
その他の可能性としては、(順不同で)。
- 自分が思っているデータベースに接続されていない。
- あなたが考えている SQL Server インスタンスに接続されていません。
接続文字列を再確認し、SQL Server インスタンス名とデータベース名を明示的に指定していることを確認します。
関連
-
[解決済み] SQL Serverで実行中の合計を計算する
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQL Serverにおけるchar、nchar、varchar、nvarcharの違いは何ですか?
-
[解決済み] Count()で条件を指定することは可能ですか?
-
[解決済み] SQLクエリは、複数のテーブルからデータを返す
-
[解決済み] SQL Server Management Studio & Transact SQLにおけるGOの使用方法とは?
-
[解決済み] sql server invalid object name - but tables are listed in SSMS tables list.
-
[解決済み】SQL Server Management Studio 2012で主キーを自動インクリメントする。
-
[解決済み】SQL Server。クエリーは高速ですが、プロシージャから遅い
-
[解決済み】select文のDatetimeカラムをUTCからローカルタイムに変換する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQLラーニングノート--オペランドには1つのカラムが必要です。
-
[解決済み] SQL Server FOR EACH ループ
-
[解決済み] Oracleで上位100行を選択する方法は?
-
[解決済み] SQL Serverで実行中の合計を計算する
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] Count()で条件を指定することは可能ですか?
-
[解決済み] SQLサーバーで行を列に効率的に変換する