2008-09-17 12 views
1

SQL Serverのバージョン2000.SQL Server上のテーブルで異なるユーザーが異なる行を表示する状況はありますか?

私たちはMSSQL Serverと対話しているデスクトップをたくさん持っています。特定のレコードを検索すると、一部のデスクトップで正しいデータが返されますが、一部のデータでは返されません。

SQLコマンドは "SELECT * FROM PODORDH WHERE([NO] = 6141)" 1台または2台のデスクトップでは、レコードを返します。サーバーおよび他のすべてのデスクトップでは、レコードは戻されません。

どの領域を調べる必要がありますか?何が起こるのでしょうか?

答えて

4

このエラーは、トランザクション内でそのレコードを削除/挿入したが、まだそのトランザクションをコミットしていないユーザーが原因と考えられます。

3

各マシンでどのデータベースとサーバに接続しているかを確認します。異なるデータベースやサーバに接続している場合を除き、どこでも同じ回答を得る必要があるだけです。

2

行を戻すワークステーションが1つだけの場合、そのワークステーションにコミットされていないオープン・トランザクションがあるように見えます。

それ以外の場合は、分離レベルがワークステーションごとに異なる可能性があります。一部はコミットされていないデータが表示され、その他は表示されません。

2

各マシンから別のユーザーとしてサーバーに接続する場合は、選択しているテーブルのアクセス許可を調べることができます。

一部のユーザーがそのテーブルを読み取るためのアクセス権を持っている場合は、その結果を得ることができます。

0

おそらくレコードを見つける1人または2人のユーザーが別のスキーマ名を使用しているため、異なる表が使用されている可能性があります。 IEのほとんどのユーザーはdbo.PODORDHを使用していますが、1人または2人のユーザーがotheruser.PODORDHを使用しています。

1

上記のすべてのオプションを使い果たした後、私は行とテーブルのロックを調べます。この場合、ロックが発生したというエラーが返されます。エラーを飲み込む可能性のあるアプリケーションを実行していますか?

関連する問題