2009-07-28 15 views
0

私は奇妙なバグに遭遇しました。マルチパート識別子 "tableabc..fielda"は今日はバインドできません。SQLサーバに関する奇妙なSQLバグ(マルチパート識別子)

上記のsqlでは、誤ってクエリにもう1つのドットを追加しました。

私はSQLクエリで2ドットを入力します。
開発サーバー(mssql 2005)で動作します。
ステージングサーバー(mssql 2005も)では、上記のエラーが発生します。

どうしたのですか?
両方のデータベースはmssql 2005です。ただし、1つは正常に動作し、もう1つは失敗します。
なぜですか?通常は、すなわちdatabase.schema.table、デフォルトのスキーマを示すために2点を使用しますが、そのtableabcを示唆しているように見えるdatabase..table

として

+0

これは、table..columnは無効ですがdatabase..tableが有効なために起こりそうです。 問題の潜在的な原因を確認できるクエリサンプルを投稿できる場合。 –

+0

しかし、同じクエリがmssql 2005で実行されます。おそらく、開発サーバーのmssql2005がさらに更新されます。 – Billy

+0

@Billy - 質問を投稿する - このエラーが発生する理由を判断するための最良の方法を選択することができます。クエリがなければ、私たちは目が見えません。 –

答えて

1

はテーブルであり、FIELDAは列ですので、あなたがwouldnそれらの間にはレベルがありますか?

これらのオブジェクト名が何であるか確認できますか?

これらのオブジェクトはステージングサーバー上に存在しますか?

接続しているユーザーのデフォルトスキーマは何ですか?

+0

"2 dots"はデフォルトのスキーマを示しますか?どんなドキュメントでこれについて話していますか?ありがとう。 'select * from database..table'のように – Billy

+1

- 暗黙のスキーマは、接続されているユーザーのデフォルトであるスキーマになります。実行しようとしているクエリをポストすると、このフラグメントがコンテキスト内にある方が良いかもしれません。 –

+1

MSDN/BOLリンクhttp://msdn.microsoft.com/en-us/library/aa224076(SQL.80).aspx –